Unverified Commit d73f74ce authored by Christoph Junghans's avatar Christoph Junghans Committed by GitHub

Merge pull request #420 from votca/imc_fixup

parents eb89449c 49ced4c4
Pipeline #86133925 passed with stages
in 405 minutes and 47 seconds
......@@ -26,7 +26,6 @@ src/libcsg/version.cc
src/tools/csg_dump
src/tools/csg_fmatch
src/tools/csg_gmxtopol
src/tools/csg_imcrepack
src/tools/csg_map
src/tools/csg_property
src/tools/csg_resample
......
......@@ -121,7 +121,11 @@ add_subdirectory(share)
# needs to happen after src and scripts subdir
get_property(VOTCA_BINARIES TARGET votca_csg PROPERTY BINARIES)
list(SORT VOTCA_BINARIES)
configure_file(src/libcsg/VOTCA_CSGConfig.cmake.in "${CMAKE_CURRENT_BINARY_DIR}/src/libcsg/VOTCA_CSGConfig.cmake" @ONLY)
# for >=cmake-3.12 use list(JOIN VOTCA_BINARIES " " VOTCA_BINARIES)
string(REPLACE ";" " " VOTCA_BINARIES "${VOTCA_BINARIES}")
configure_file(scripts/csg-completion.bash.in "${CMAKE_CURRENT_BINARY_DIR}/scripts/csg-completion.bash" @ONLY)
configure_file(${CMAKE_MODULE_PATH}/cmake_uninstall.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake IMMEDIATE @ONLY)
add_custom_target(uninstall-csg COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
......
......@@ -42,4 +42,4 @@ set_target_properties(VOTCA::csg_call PROPERTIES VOTCA_PATH "${CMAKE_CURRENT_BIN
set_target_properties(VOTCA::csg_inverse PROPERTIES VOTCA_CSG_DEFAULTS "${PROJECT_BINARY_DIR}/share/xml/csg_defaults.xml")
option(WITH_RC_FILES "Install votca rc files, no need when installing under /usr" ON)
install(FILES csg-completion.bash DESTINATION ${CMAKE_INSTALL_DATADIR}/votca/rc)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/csg-completion.bash DESTINATION ${CMAKE_INSTALL_DATADIR}/votca/rc)
#
# Copyright 2009-2011 The VOTCA Development Team (http://www.votca.org)
# Copyright 2009-2019 The VOTCA Development Team (http://www.votca.org)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
......@@ -26,8 +26,4 @@ _votca_csg_common_opts()
fi
}
complete -F _votca_csg_common_opts -f \
csg_boltzmann csg_dump csg_gmxtopol csg_inverse csg_resample \
csg_call csg_fmatch csg_imcrepack csg_map csg_property csg_stat \
csg_density csg_reupdate csg_dlptopol
complete -F _votca_csg_common_opts -f @VOTCA_BINARIES@
......@@ -34,8 +34,6 @@ Prints atoms that are read from a topology file to help debug atom naming.
Performs force matching (also called //multiscale coarse-graining//).
: **csg_gmxtopol**
Create skeleton for gromacs topology based on atomistic topology and a mapping file.
: **csg_imcrepack**
Is internally called by inversion scripts to kick out zero entries in the matrix for inverse Monte Carlo (imc).
: **csg_imc_solver**
Is internally called by inversion scripts to solve matrix equation for inverse Monte Carlo (imc).
: **csg_inverse**
......
......@@ -36,13 +36,10 @@ imc_groups=$(csg_get_interaction_property --all inverse.imc.group)
imc_groups=$(remove_duplicate $imc_groups)
[[ -z ${imc_groups} ]] && die "${0##*/}: No imc groups defined"
for group in $imc_groups; do
# currently this is a hack! need to create combined array
reg="$(csg_get_property cg.inverse.imc.${group}.reg ${default_reg})" #filter me away
is_num "${reg}" || die "${0##*/}: value of cg.inverse.imc.${group}.reg should be a number"
msg "solving linear equations for imc group '$group' (regularization ${reg})"
critical csg_imcrepack --in ${group} --out ${group}.packed
critical csg_imc_solve --imcfile "${group}.packed.imc" --gmcfile "${group}.packed.gmc" --regularization "${reg}" --outputfile "${group}.packed.sol"
critical csg_imcrepack --in ${group}.packed --unpack ${group}.packed.sol
critical csg_imc_solve --imcfile "${group}.imc" --gmcfile "${group}.gmc" --idxfile "${group}.idx" --regularization "${reg}" --outputfile "${group}.sol"
done
for_all "non-bonded bonded" do_external imc purify
foreach(PROG csg_reupdate csg_map csg_dump csg_property csg_resample csg_stat csg_fmatch csg_imcrepack csg_gmxtopol csg_dlptopol csg_density csg_imc_solve)
foreach(PROG csg_reupdate csg_map csg_dump csg_property csg_resample csg_stat csg_fmatch csg_gmxtopol csg_dlptopol csg_density csg_imc_solve)
file(GLOB ${PROG}_SOURCES ${PROG}*.cc)
add_executable(${PROG} ${${PROG}_SOURCES})
target_link_libraries(${PROG} votca_csg)
......@@ -32,7 +32,7 @@ if(ENABLE_TESTING)
add_test(NAME integration_Run_csg_reupdate COMMAND csg_reupdate --gentable true --options ${REFPATH}/settings_re.xml WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Run_csg_reupdate PROPERTIES LABELS "csg;tools;votca;integration")
add_test(NAME integration_Compare_csg_reupdate_output COMMAND $<TARGET_FILE:VOTCA::votca_compare> --etol ${REGRESSIONTEST_TOLERANCE} -f1 CG-CG.pot.new -f2 ${REFPATH}/CG-CG.pot.re WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Compare_csg_reupdate_output PROPERTIES DEPENDS Run_csg_reupdate)
set_tests_properties(integration_Compare_csg_reupdate_output PROPERTIES DEPENDS integration_Run_csg_reupdate)
set_tests_properties(integration_Compare_csg_reupdate_output PROPERTIES LABELS "csg;tools;votca;integration")
set(RUNPATH ${CMAKE_CURRENT_BINARY_DIR}/Run_csg_fmatch)
......@@ -112,19 +112,48 @@ if(ENABLE_TESTING)
add_test(NAME integration_Compare_csg_stat-imc_output_2 COMMAND $<TARGET_FILE:VOTCA::votca_compare> --etol ${REGRESSIONTEST_TOLERANCE} -f1 CG-CG.dist.new -f2 ${REFPATH}/CG-CG.dist.imc WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Compare_csg_stat-imc_output_2 PROPERTIES DEPENDS integration_Run_csg_stat-imc)
set_tests_properties(integration_Compare_csg_stat-imc_output_2 PROPERTIES LABELS "csg;tools;votca;integration")
add_test(NAME integration_Compare_csg_stat-imc_output_3 COMMAND $<TARGET_FILE:VOTCA::votca_compare> --etol ${REGRESSIONTEST_TOLERANCE} -f1 CG-CG.gmc -f2 ${REFPATH}/CG-CG.gmc WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Compare_csg_stat-imc_output_3 PROPERTIES DEPENDS integration_Run_csg_stat-imc)
set_tests_properties(integration_Compare_csg_stat-imc_output_3 PROPERTIES LABELS "csg;tools;votca;integration")
add_test(NAME integration_Compare_csg_stat-imc_output_4 COMMAND ${CMAKE_COMMAND} -E compare_files CG-CG.idx ${REFPATH}/CG-CG.idx WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Compare_csg_stat-imc_output_4 PROPERTIES DEPENDS integration_Run_csg_stat-imc)
set_tests_properties(integration_Compare_csg_stat-imc_output_4 PROPERTIES LABELS "csg;tools;votca;integration")
set(RUNPATH ${CMAKE_CURRENT_BINARY_DIR}/Run_csg_imc_solve)
set(REFPATH ${CMAKE_CURRENT_SOURCE_DIR}/references/csg_imc_solve)
set(RUNPATH ${CMAKE_CURRENT_BINARY_DIR}/Run_csg_imc_solve)
set(REFPATH ${CMAKE_CURRENT_SOURCE_DIR}/references/spce/imc)
file(MAKE_DIRECTORY ${RUNPATH})
add_test(NAME integration_Run_csg_imc_solve
COMMAND csg_imc_solve -i ${REFPATH}/CG-CG.packed.imc -g ${REFPATH}/CG-CG.packed.gmc -o table_csg_imc_solve.dat
COMMAND csg_imc_solve -i ${REFPATH}/CG-CG.imc -g ${REFPATH}/CG-CG.gmc -n ${REFPATH}/CG-CG.idx
WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Run_csg_imc_solve PROPERTIES LABELS "csg;tools;votca;integration")
add_test(NAME integration_Compare_csg_imc_solve_output COMMAND $<TARGET_FILE:VOTCA::votca_compare> --etol ${REGRESSIONTEST_TOLERANCE} -f1 table_csg_imc_solve.dat -f2 ${REFPATH}/CG-CG.packed.sol
add_test(NAME integration_Compare_csg_imc_solve_output COMMAND $<TARGET_FILE:VOTCA::votca_compare> --etol ${REGRESSIONTEST_TOLERANCE} -f1 CG-CG.dpot.imc -f2 ${REFPATH}/CG-CG.dpot.imc
WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Compare_csg_imc_solve_output PROPERTIES DEPENDS integration_Run_csg_imc_solve)
set_tests_properties(integration_Compare_csg_imc_solve_output PROPERTIES LABELS "csg;tools;votca;integration")
set(RUNPATH ${CMAKE_CURRENT_BINARY_DIR}/Run_csg_imc_solve_reg)
set(REFPATH ${CMAKE_CURRENT_SOURCE_DIR}/references/LJ1-LJ2)
file(MAKE_DIRECTORY ${RUNPATH})
add_test(NAME integration_Run_csg_imc_solve_reg
COMMAND csg_imc_solve -r 1000 -i ${REFPATH}/group_1.imc -g ${REFPATH}/group_1.gmc -n ${REFPATH}/group_1.idx
WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Run_csg_imc_solve_reg PROPERTIES LABELS "csg;tools;votca;integration")
add_test(NAME integration_Compare_csg_imc_solve_reg_output_2 COMMAND $<TARGET_FILE:VOTCA::votca_compare>
--etol ${REGRESSIONTEST_TOLERANCE} -f1 LJ1-LJ1.dpot.imc -f2 ${REFPATH}/LJ1-LJ1.dpot.imc
WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Compare_csg_imc_solve_reg_output_2 PROPERTIES DEPENDS integration_Run_csg_imc_solve_reg)
set_tests_properties(integration_Compare_csg_imc_solve_reg_output_2 PROPERTIES LABELS "csg;tools;votca;integration")
add_test(NAME integration_Compare_csg_imc_solve_reg_output_3 COMMAND $<TARGET_FILE:VOTCA::votca_compare>
--etol ${REGRESSIONTEST_TOLERANCE} -f1 LJ1-LJ2.dpot.imc -f2 ${REFPATH}/LJ1-LJ2.dpot.imc
WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Compare_csg_imc_solve_reg_output_3 PROPERTIES DEPENDS integration_Run_csg_imc_solve_reg)
set_tests_properties(integration_Compare_csg_imc_solve_reg_output_3 PROPERTIES LABELS "csg;tools;votca;integration")
add_test(NAME integration_Compare_csg_imc_solve_reg_output_4 COMMAND $<TARGET_FILE:VOTCA::votca_compare>
--etol ${REGRESSIONTEST_TOLERANCE} -f1 LJ2-LJ2.dpot.imc -f2 ${REFPATH}/LJ2-LJ2.dpot.imc
WORKING_DIRECTORY ${RUNPATH})
set_tests_properties(integration_Compare_csg_imc_solve_reg_output_4 PROPERTIES DEPENDS integration_Run_csg_imc_solve_reg)
set_tests_properties(integration_Compare_csg_imc_solve_reg_output_4 PROPERTIES LABELS "csg;tools;votca;integration")
set(RUNPATH ${CMAKE_CURRENT_BINARY_DIR}/Run_csg_resample)
set(REFPATH ${CMAKE_CURRENT_SOURCE_DIR}/references/csg_resample)
file(MAKE_DIRECTORY ${RUNPATH})
......
......@@ -38,22 +38,20 @@ void CG_IMC_solve::Initialize(void) {
AddProgramOptions()("gmcfile,g", boost::program_options::value<std::string>(),
"gmc statefile");
AddProgramOptions()("outputfile,o",
boost::program_options::value<std::string>(),
"outputfile");
AddProgramOptions()("idxfile,n", boost::program_options::value<std::string>(),
"idx statefile");
}
bool CG_IMC_solve::EvaluateOptions() {
CheckRequired("imcfile", "Missing imcfile");
CheckRequired("gmcfile", "Missing gmcfile");
CheckRequired("outputfile", "Missing outputfile");
CheckRequired("idxfile", "Missing idxfile");
return true;
}
void CG_IMC_solve::Run() {
std::string imcfile = _op_vm["imcfile"].as<std::string>();
std::string gmcfile = _op_vm["gmcfile"].as<std::string>();
std::string outputfile = _op_vm["outputfile"].as<std::string>();
double reg = _op_vm["regularization"].as<double>();
......@@ -103,5 +101,14 @@ void CG_IMC_solve::Run() {
x.y() = -inverse * A.transpose() * B.y();
x.Save(outputfile);
std::string idxfile = _op_vm["idxfile"].as<std::string>();
std::vector<std::pair<std::string, votca::tools::RangeParser> > ranges =
votca::csg::imcio_read_index(idxfile);
for (std::pair<std::string, votca::tools::RangeParser>& range : ranges) {
votca::tools::Table tbl;
for (int r : range.second) {
tbl.push_back(x.x(r - 1), x.y(r - 1), 'i');
}
tbl.Save(range.first + ".dpot.imc");
}
}
/*
* Copyright 2009-2019 The VOTCA Development Team (http://www.votca.org)
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
/*
* csg_imcrepack repacks the matri for the imc update. It either removes zero
* line entries (pack) or extracts the dU from the big file (unpack)
*
*/
#include <boost/program_options.hpp>
#include <iostream>
#include <votca/csg/imcio.h>
#include <votca/csg/version.h>
#include <votca/tools/table.h>
#include <votca/tools/tokenizer.h>
using namespace std;
using namespace votca::csg;
using namespace votca::tools;
void help_text(void) {
votca::csg::HelpTextHeader("csg_imcrepack");
cout << "This program is internally called by inversion scripts to kick out\n"
"zero entries in matrix for inverse Monte Carlo. It also extracts "
"the\n"
"single potential updates out of the full solution.\n\n";
}
using namespace std;
namespace po = boost::program_options;
void check_option(po::options_description &desc, po::variables_map &vm,
const string &option) {
if (!vm.count(option)) {
cout << "csg_imcrepack \n\n";
cout << desc << endl << "parameter " << option << " is not specified\n";
exit(1);
}
}
int main(int argc, char **argv) {
string name_in, name_out, name_unpack;
// program options
po::options_description desc("Allowed options");
desc.add_options()("in", po::value<string>(&name_in), "files to read")(
"out", po::value<string>(&name_out), "files to write")(
"unpack", po::value<string>(&name_unpack),
"extract all tables from this file")("help", "display help message");
po::variables_map vm;
try {
po::store(po::parse_command_line(argc, argv, desc), vm);
po::notify(vm);
} catch (po::error &err) {
cout << "error parsing command line: " << err.what() << endl;
return -1;
}
// does the user want help?
if (vm.count("help")) {
help_text();
cout << desc << endl;
return 0;
}
check_option(desc, vm, "in");
std::vector<std::pair<std::string, RangeParser> > ranges =
imcio_read_index(name_in + ".idx");
if (vm.count("unpack")) {
Table tbl_in;
tbl_in.Load(name_unpack);
for (std::pair<std::string, RangeParser> &range : ranges) {
Table tbl;
for (int r : range.second) {
tbl.push_back(tbl_in.x(r - 1), tbl_in.y(r - 1), 'i');
}
tbl.Save(range.first + ".dpot.imc");
}
} else {
check_option(desc, vm, "out");
int beg = 1;
int end = 0;
std::list<int> list;
Table dS;
dS.Load(name_in + ".imc");
Eigen::MatrixXd gmc = imcio_read_matrix(name_in + ".gmc");
for (std::pair<std::string, RangeParser> &range : ranges) {
for (int r : range.second) {
for (int i = 0; i < gmc.rows(); ++i) {
if (((gmc.row(i).cwiseAbs().array()) > 1e-8).any()) {
list.push_back(r - 1);
end++;
}
}
}
RangeParser new_rp;
new_rp.Add(beg, end);
beg = end + 1;
range.second = new_rp;
}
imcio_write_dS(name_out + ".imc", dS, &list);
imcio_write_matrix(name_out + ".gmc", gmc, &list);
imcio_write_index(name_out + ".idx", ranges);
}
}
0.32 -0.008078121276 i
0.33 0.07226354165 i
0.34 0.1724711564 i
0.35 0.1365555085 i
0.36 0.2311367989 i
0.37 0.007424049473 i
0.38 0.2132625638 i
0.39 0.3408797218 i
0.4 0.1869593711 i
0.41 0.3583911954 i
0.42 0.1473165226 i
0.43 -0.08239036113 i
0.44 -0.1179722263 i
0.45 -0.1591427434 i
0.46 -0.05641810747 i
0.47 -0.4631575714 i
0.48 -0.1251259348 i
0.49 -0.3275139136 i
0.5 -0.4618617559 i
0.51 -0.6073320625 i
0.52 -0.7218788397 i
0.53 -0.2560420645 i
0.54 -0.1756553715 i
0.55 -0.05992000697 i
0.56 -0.3936489218 i
0.57 -0.2128147271 i
0.58 0.1652703107 i
0.59 0.122865264 i
0.6 0.1476074697 i
0.61 0.1770250876 i
0.62 0.4586626814 i
0.63 0.5165379119 i
0.64 0.3767779456 i
0.65 0.2560061454 i
0.66 0.5238498124 i
0.67 0.4884115183 i
0.68 0.5465945848 i
0.69 0.3499086711 i
0.7 0.4142876053 i
0.71 0.3372317466 i
0.72 0.2299124608 i
0.73 0.1880565558 i
0.74 0.05281519471 i
0.75 -0.0572944607 i
0.76 -0.2515911772 i
0.77 -0.1382510003 i
0.78 -0.1535869227 i
0.79 -0.3032308906 i
0.8 -0.3094321177 i
0.81 -0.180732456 i
0.82 -0.1859870342 i
0.83 -0.2062111744 i
0.84 -0.2819195267 i
0.85 -0.1346161163 i
0.29 0.01442258778 i
0.3 -0.1942374598 i
0.31 -0.07362217801 i
0.32 0.3028585592 i
0.33 0.09380542531 i
0.34 0.2342126616 i
0.35 0.3177449449 i
0.36 0.02174311878 i
0.37 0.006903042459 i
0.38 -0.02320215917 i
0.39 0.2578200811 i
0.4 0.1315943862 i
0.41 -0.1861316517 i
0.42 -0.1621144036 i
0.43 0.08628098987 i
0.44 -0.2365694652 i
0.45 -0.3493635721 i
0.46 -0.4267504953 i
0.47 -0.1395841168 i
0.48 -0.3619577887 i
0.49 -0.134164966 i
0.5 -0.3185507164 i
0.51 -0.3818730094 i
0.52 -0.4116589302 i
0.53 0.07761072773 i
0.54 -0.139684089 i
0.55 0.08116940094 i
0.56 -0.05067553922 i
0.57 0.1166779585 i
0.58 0.1323070866 i
0.59 0.3596276678 i
0.6 0.177592353 i
0.61 0.3915468351 i
0.62 0.2831511088 i
0.63 0.4087781694 i
0.64 0.3606050269 i
0.65 0.305282637 i
0.66 0.3014943171 i
0.67 0.3342253927 i
0.68 0.2596989873 i
0.69 0.08058015055 i
0.7 0.0363205564 i
0.71 -0.002403368437 i
0.72 0.0203477649 i
0.73 -0.09502726069 i
0.74 -0.1567078151 i
0.75 -0.09164087761 i
0.76 -0.1928782975 i
0.77 -0.2693574964 i
0.78 -0.2668931081 i
0.79 -0.2518913827 i
0.8 -0.2383824177 i
0.81 -0.2095961875 i
0.82 -0.2738234221 i
0.83 -0.3302680553 i
0.84 -0.1225659763 i
0.85 0.09922802524 i
0.27 -0.02587539621 i
0.28 -0.1126694629 i
0.29 0.07984754919 i
0.3 0.06477087398 i
0.31 0.09435988875 i
0.32 0.1901239645 i
0.33 0.09584897222 i
0.34 0.1482973487 i
0.35 0.2066903082 i
0.36 -0.2115329858 i
0.37 0.0309412061 i
0.38 0.02794102732 i
0.39 -0.2494614269 i
0.4 -0.04299968551 i
0.41 -0.1886443505 i
0.42 -0.3357864268 i
0.43 -0.1182548061 i
0.44 0.04865702985 i
0.45 -0.217696306 i
0.46 -0.0004992209445 i
0.47 0.03877212586 i
0.48 -0.3186357511 i
0.49 -0.08569419731 i
0.5 0.1337907463 i
0.51 -0.2655632639 i
0.52 -0.2237701282 i
0.53 0.2236895164 i
0.54 -0.07177294918 i
0.55 0.1799525999 i
0.56 0.2294777268 i
0.57 0.1667711946 i
0.58 0.0794790808 i
0.59 0.2857033169 i
0.6 0.3699231589 i
0.61 0.3582950713 i
0.62 0.1069537525 i
0.63 0.09274100185 i
0.64 0.2104228819 i
0.65 0.09758602488 i
0.66 -0.003073625441 i
0.67 0.02161326919 i
0.68 0.1094083728 i
0.69 -0.1937658207 i
0.7 -0.08420476029 i
0.71 -0.2783751006 i
0.72 -0.2447942427 i
0.73 -0.2699898704 i
0.74 -0.3385452578 i
0.75 -0.2781327527 i
0.76 -0.2721232302 i
0.77 -0.2057241287 i
0.78 -0.3193713159 i
0.79 -0.3413969846 i
0.8 -0.2763242365 i
0.81 -0.1322768264 i
0.82 -0.1906765773 i
0.83 -0.01562643687 i
0.84 -0.04632651645 i
0.85 -0.01429598159 i
This source diff could not be displayed because it is too large. You can view the blob instead.
LJ1-LJ1 1:54
LJ2-LJ2 55:113
LJ1-LJ2 114:170
0.32 1.0274319
0.33 5.1214676
0.34 14.958325
0.35 27.842573
0.36 40.837207
0.37 44.78093
0.38 40.601719
0.39 27.015513
0.4 16.867604
0.41 2.5564036
0.42 -6.7764593
0.43 -14.556543
0.44 -21.418276
0.45 -25.183832
0.46 -28.744107
0.47 -30.784994
0.48 -31.223985
0.49 -33.259919
0.5 -32.939944
0.51 -33.806996
0.52 -33.009322
0.53 -31.509541
0.54 -29.341523
0.55 -25.63259
0.56 -19.16221
0.57 -12.513526
0.58 0.42833837
0.59 13.468524
0.6 29.451653
0.61 41.954201
0.62 52.211603
0.63 62.309992
0.64 62.288297
0.65 60.851477
0.66 54.837079
0.67 47.047482
0.68 39.872966
0.69 32.826341
0.7 27.070204
0.71 18.337533
0.72 14.607129
0.73 5.0143398
0.74 -3.8199552
0.75 -16.688511
0.76 -28.064637
0.77 -40.39303
0.78 -50.54319
0.79 -60.3589
0.8 -64.615178
0.81 -68.680316
0.82 -68.657773
0.83 -62.766706
0.84 -53.681677
0.85 -39.165084
0.27 0.11263009
0.28 0.14374109
0.29 -3.8080762
0.3 -9.0645766
0.31 -7.017503
0.32 -0.15906945
0.33 10.308417
0.34 13.840901
0.35 16.090778
0.36 14.877403
0.37 10.737303
0.38 7.2489276
0.39 2.2134564
0.4 -2.0826382
0.41 -5.1925012
0.42 -9.6850201
0.43 -13.223953
0.44 -15.115575
0.45 -19.538442
0.46 -20.283206
0.47 -23.006381
0.48 -24.04006
0.49 -24.572011
0.5 -23.07649
0.51 -19.813459
0.52 -15.022075
0.53 -7.788403
0.54 0.91435418
0.55 10.44728
0.56 18.71902
0.57 29.129702
0.58 34.667059
0.59 37.004187
0.6 35.541314
0.61 36.35628
0.62 32.045175
0.63 30.565809
0.64 26.857159
0.65 22.684149
0.66 22.923857
0.67 19.170901
0.68 12.210591
0.69 5.7769744
0.7 -4.0661978
0.71 -14.243735
0.72 -24.392805
0.73 -36.830522
0.74 -45.715157
0.75 -52.49941
0.76 -59.2088
0.77 -59.767377
0.78 -59.594951
0.79 -57.252089
0.8 -52.338757
0.81 -41.847728
0.82 -25.184151
0.83 -6.9143339
0.84 12.437792
0.85 34.919877
0.29 0.27916462
0.3 2.0674178
0.31 4.578349
0.32 9.7996966
0.33 26.072015
0.34 41.322898
0.35 52.106727
0.36 51.152615
0.37 41.73711
0.38 30.959084
0.39 17.052454
0.4 0.3726861
0.41 -8.1474542
0.42 -20.998645
0.43 -28.276682
0.44 -35.724192
0.45 -41.56848
0.46 -46.223236
0.47 -51.167631
0.48 -51.590958
0.49 -54.037004
0.5 -53.744433
0.51 -52.68554
0.52 -47.121085
0.53 -40.011982
0.54 -29.892539
0.55 -10.774623
0.56 9.7035292
0.57 31.746911
0.58 58.509572
0.59 80.476944
0.6 95.805016
0.61 106.20524
0.62 109.48496
0.63 104.65082
0.64 96.827419
0.65 86.941785
0.66 75.640329
0.67 67.974939
0.68 57.19816
0.69 47.618968
0.7 33.818056
0.71 19.392966
0.72 -0.56679429
0.73 -25.396429
0.74 -47.95273
0.75 -71.081827
0.76 -89.81722
0.77 -105.66831
0.78 -118.46028
0.79 -125.62728
0.8 -121.81271
0.81 -113.06868
0.82 -99.842632
0.83 -74.653564
0.84 -37.418944
0.85 2.8989264
2.399999999999999911e-01 1.400818384504777914e+00
2.500000000000000000e-01 1.119404589460788246e+00
2.600000000000000089e-01 8.311733280070037200e-01
2.700000000000000178e-01 6.549576183962392273e-01
2.800000000000000266e-01 5.499867975951023835e-01
2.899999999999999800e-01 4.316128834451896656e-01
2.999999999999999889e-01 3.394411150547935185e-01
3.099999999999999978e-01 2.381987388881730838e-01
3.200000000000000067e-01 1.531225689791381461e-01
3.300000000000000155e-01 4.179265174994910292e-02
3.400000000000000244e-01 -6.423528841480669396e-03
3.499999999999999778e-01 -7.314915475836636372e-02
3.599999999999999867e-01 -1.177969293880417184e-01
3.699999999999999956e-01 -1.759876277797524646e-01
3.800000000000000044e-01 -2.218109266776338573e-01
3.900000000000000133e-01 -2.482978405349376694e-01
4.000000000000000222e-01 -2.866610769387192281e-01
4.099999999999999756e-01 -2.880733460074593744e-01
4.199999999999999845e-01 -2.764068456563893994e-01
4.299999999999999933e-01 -2.965573165328829752e-01
4.400000000000000022e-01 -2.705717139373857716e-01
4.500000000000000111e-01 -2.752689142341052664e-01
4.600000000000000200e-01 -2.383821057148688138e-01
4.699999999999999734e-01 -2.101794455318282684e-01
4.799999999999999822e-01 -1.902412376310781972e-01
4.899999999999999911e-01 -1.448311261212103518e-01
5.000000000000000000e-01 -9.713061908877353157e-02
5.100000000000000089e-01 -5.998845192445294294e-02
5.200000000000000178e-01 -2.453740435688796587e-02
5.300000000000000266e-01 1.297837085275501193e-02
5.400000000000000355e-01 5.109048350110581560e-02
5.500000000000000444e-01 4.644935107227145255e-02
5.600000000000000533e-01 4.923783659717803629e-02
5.699999999999999512e-01 2.452065670627824601e-02
5.799999999999999600e-01 1.808330489532897212e-02
5.899999999999999689e-01 1.280733732876384798e-02
5.999999999999999778e-01 2.420937847608995927e-02
6.099999999999999867e-01 2.616844829465199071e-02
6.199999999999999956e-01 2.294661339312765655e-02
6.300000000000000044e-01 4.465045491123365712e-02
6.400000000000000133e-01 4.790617246767828880e-02
6.500000000000000222e-01 5.360718597273365221e-02
6.600000000000000311e-01 4.656783390515067955e-02
6.700000000000000400e-01 4.885716704163585444e-02
6.800000000000000488e-01 4.719008691835124142e-02
6.899999999999999467e-01 4.904768972467681704e-02
6.999999999999999556e-01 3.665882044513864985e-02
7.099999999999999645e-01 3.316690153610461766e-02
7.199999999999999734e-01 2.398351083912034568e-02
7.299999999999999822e-01 2.710225370759036020e-03
7.399999999999999911e-01 -3.032890369037530461e-04
7.500000000000000000e-01 -7.986023182084123900e-03
7.600000000000000089e-01 -1.454514754193264939e-02
7.700000000000000178e-01 -3.196659945093530825e-02
7.800000000000000266e-01 -2.794452442151981048e-02
7.900000000000000355e-01 -4.526537191081951572e-02
8.000000000000000444e-01 -4.702977228137004972e-02
8.100000000000000533e-01 -3.912382494424603008e-02
8.199999999999999512e-01 -4.132464129227537281e-02
8.299999999999999600e-01 -3.134657586592864975e-02
8.399999999999999689e-01 -2.603820700507118030e-02
8.499999999999999778e-01 -1.579249267945370336e-02
8.599999999999999867e-01 -1.094102561000728779e-02
8.699999999999999956e-01 -1.010578695696545334e-02
8.800000000000000044e-01 -5.240125303081143507e-03
8.900000000000000133e-01 -2.964244855780396194e-03
9.000000000000000222e-01 -9.585339009171283536e-04
-0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
-0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
-0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
-0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
-0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
-0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
-0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
-0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0
-0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0 -0