Hello community,

here is the log from the commit of package votca-ctp for openSUSE:Factory 
checked in at 2019-11-30 10:37:10
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/votca-ctp (Old)
 and      /work/SRC/openSUSE:Factory/.votca-ctp.new.26869 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "votca-ctp"

Sat Nov 30 10:37:10 2019 rev:2 rq:750181 version:1.5.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/votca-ctp/votca-ctp.changes      2019-02-28 
21:39:34.797617982 +0100
+++ /work/SRC/openSUSE:Factory/.votca-ctp.new.26869/votca-ctp.changes   
2019-11-30 10:38:11.780166316 +0100
@@ -1,0 +2,6 @@
+Thu Nov 21 15:08:35 UTC 2019 - Christoph Junghans <[email protected]>
+
+- Upgrade to 1.5.1:
+  * fix bug on epel7
+
+-------------------------------------------------------------------

Old:
----
  votca-ctp-1.5.tar.gz
  votca-ctp-manual-1.5.pdf

New:
----
  votca-ctp-1.5.1.tar.gz
  votca-ctp-manual-1.5.1.pdf

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ votca-ctp.spec ++++++
--- /var/tmp/diff_new_pack.BhUDWS/_old  2019-11-30 10:38:13.336166129 +0100
+++ /var/tmp/diff_new_pack.BhUDWS/_new  2019-11-30 10:38:13.368166125 +0100
@@ -18,7 +18,7 @@
 
 
 Name:           votca-ctp
-Version:        1.5
+Version:        1.5.1
 %define         uversion %{version}
 %define         sover 5
 Release:        0

++++++ votca-ctp-1.5.tar.gz -> votca-ctp-1.5.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/.gitlab-ci.yml new/ctp-1.5.1/.gitlab-ci.yml
--- old/ctp-1.5/.gitlab-ci.yml  1970-01-01 01:00:00.000000000 +0100
+++ new/ctp-1.5.1/.gitlab-ci.yml        2019-11-21 03:37:03.000000000 +0100
@@ -0,0 +1,119 @@
+stages:
+  - canary
+  - build
+
+.build:
+  retry:
+    max: 2
+  variables:
+    CCACHE_DIR: "${CI_PROJECT_DIR}/ccache"
+    CXXFLAGS: "-Wall -Werror"
+    DISTRO: "latest"
+  image: votca/buildenv:${DISTRO}
+  stage: build
+  artifacts:
+    paths:
+      - ${CI_PROJECT_DIR}/votca
+    when: always 
+  dependencies: []
+  cache:
+    paths:
+      - ccache/
+  script:
+    - ccache -z
+    - j="$(grep -c processor /proc/cpuinfo 2>/dev/null)" || j=0; ((j++))
+    - git branch commit_of_build_${CI_BUILD_ID} ${CI_COMMIT_SHA}
+    - git clone https://github.com/votca/votca
+    - pushd votca
+    - if [[ ${CI_COMMIT_TAG} = v[12].[0-9]* ]]; then
+        git checkout -b ${CI_COMMIT_TAG} ${CI_COMMIT_TAG};
+      elif [[ ( ${CI_COMMIT_REF_NAME} =~ ^for/([^/]*)/.* || 
${CI_COMMIT_REF_NAME} =~ ^(stable)$ ) && ${BASH_REMATCH[1]} != master ]]; then
+        git checkout -b ${BASH_REMATCH[1]} origin/${BASH_REMATCH[1]};
+      fi
+    - git submodule update --recursive --init
+    - git -C ${CI_PROJECT_NAME} fetch ${CI_PROJECT_DIR} 
commit_of_build_${CI_BUILD_ID}
+    - git -C ${CI_PROJECT_DIR} branch -d commit_of_build_${CI_BUILD_ID}
+    - git -C ${CI_PROJECT_NAME} checkout -f ${CI_COMMIT_SHA}
+    - mkdir -p build
+    - pushd build
+    - cmake .. -DENABLE_TESTING=ON -DBUILD_XTP=ON -DBUILD_CTP=ON 
-DBUILD_CTP_MANUAL=ON -DCMAKE_INSTALL_PREFIX=/usr 
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
+    - make -O -k -j${j} -l${j} VERBOSE=1
+    - make test CTEST_OUTPUT_ON_FAILURE=1
+    - make install DESTDIR=${PWD}/install && rm -rf ${PWD}/install/usr && 
rmdir ${PWD}/install
+    - sudo make install
+    - ccache -s
+
+Debug GCC:
+  stage: canary
+  variables:
+    CC: "gcc"
+    CXX: "g++"
+    CMAKE_BUILD_TYPE: "Debug"
+  extends: .build
+
+None GCC:
+  variables:
+    CC: "gcc"
+    CXX: "g++"
+    CMAKE_BUILD_TYPE: ""
+  extends: .build
+
+None Clang:
+  variables:
+    CC: "clang"
+    CXX: "clang++"
+    CMAKE_BUILD_TYPE: ""
+  extends: .build
+
+Debug Clang:
+  variables:
+    CC: "clang"
+    CXX: "clang++"
+    CMAKE_BUILD_TYPE: "Debug"
+  extends: .build
+
+Release GCC:
+  variables:
+    CC: "gcc"
+    CXX: "g++"
+    CMAKE_BUILD_TYPE: "Release"
+  extends: .build
+
+Release Clang:
+  variables:
+    CC: "clang"
+    CXX: "clang++"
+    CMAKE_BUILD_TYPE: "Release"
+  extends: .build
+
+Debug GCC Ubuntu:
+  variables:
+    CC: "gcc"
+    CXX: "g++"
+    CMAKE_BUILD_TYPE: "Debug"
+    DISTRO: "ubuntu"
+  extends: .build
+
+Debug Clang Ubuntu:
+  variables:
+    CC: "clang"
+    CXX: "clang++"
+    CMAKE_BUILD_TYPE: "Debug"
+    DISTRO: "ubuntu"
+  extends: .build
+
+Release GCC Ubuntu:
+  variables:
+    CC: "gcc"
+    CXX: "g++"
+    CMAKE_BUILD_TYPE: "Release"
+    DISTRO: "ubuntu"
+  extends: .build
+
+Release Clang Ubuntu:
+  variables:
+    CC: "clang"
+    CXX: "clang++"
+    CMAKE_BUILD_TYPE: "Release"
+    DISTRO: "ubuntu"
+  extends: .build
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/.travis.yml new/ctp-1.5.1/.travis.yml
--- old/ctp-1.5/.travis.yml     2019-01-28 03:11:11.000000000 +0100
+++ new/ctp-1.5.1/.travis.yml   2019-11-21 03:37:03.000000000 +0100
@@ -45,7 +45,7 @@
    else
      git clone --recursive https://github.com/votca/votca.git 
$HOME/docker/votca;
      if [[ ${TRAVIS_BRANCH} != master ]]; then
-       git -C ${HOME}/docker/votca checkout -b ${TRAVIS_BRANCH} 
origin/${TRAVIS_BRANCH} && git -C ${HOME}/docker/votca submodule update 
--recursive --init;
+       git -C ${HOME}/docker/votca checkout -b ${TRAVIS_BRANCH} 
${TRAVIS_TAG:-origin/${TRAVIS_BRANCH}} && git -C ${HOME}/docker/votca submodule 
update --recursive --init;
      fi;
      git -C ${HOME}/docker/votca/${TRAVIS_REPO_SLUG#*/} fetch 
${PWD}/${TRAVIS_REPO_SLUG} current_commit;
      git -C ${HOME}/docker/votca/${TRAVIS_REPO_SLUG#*/} checkout -f FETCH_HEAD;
@@ -112,6 +112,7 @@
   - development
   - stable
   - next
+  - /^v\d+\.\d+(\.\d+|_rc\d+)?$/
 
 cache:
   - ccache
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/CHANGELOG.md new/ctp-1.5.1/CHANGELOG.md
--- old/ctp-1.5/CHANGELOG.md    2019-01-28 03:11:11.000000000 +0100
+++ new/ctp-1.5.1/CHANGELOG.md  2019-11-21 03:37:03.000000000 +0100
@@ -1,6 +1,9 @@
 For more detailed information about the changes see the history of the 
[repository](https://github.com/votca/ctp/commits/master).
 
-## Version 1.5 rc1 (released XX.XX.19)
+## Version 1.5.1 (released 20.11.19)
+* fix bug on epel7
+
+## Version 1.5 (released 28.01.19)
 * Updated manual: EWALD3D documentation
 * Moved kinetic Monte Carl to votca-ctp
 * KMC now supports more than one charge 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/CMakeLists.txt new/ctp-1.5.1/CMakeLists.txt
--- old/ctp-1.5/CMakeLists.txt  2019-01-28 03:11:11.000000000 +0100
+++ new/ctp-1.5.1/CMakeLists.txt        2019-11-21 03:37:03.000000000 +0100
@@ -1,7 +1,7 @@
 cmake_minimum_required(VERSION 3.1)
 project(votca-ctp)
 
-set(PROJECT_VERSION "1.5")
+set(PROJECT_VERSION "1.5.1")
 set(PROJECT_CONTACT "[email protected]")
 string(REGEX REPLACE "^[1-9]+\\.([1-9]+).*$" "\\1" SOVERSION 
"${PROJECT_VERSION}")
 if (NOT ${SOVERSION} MATCHES "[1-9]+")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/manual/CMakeLists.txt 
new/ctp-1.5.1/manual/CMakeLists.txt
--- old/ctp-1.5/manual/CMakeLists.txt   2019-01-28 03:11:11.000000000 +0100
+++ new/ctp-1.5.1/manual/CMakeLists.txt 2019-11-21 03:37:03.000000000 +0100
@@ -21,7 +21,7 @@
 set_property(DIRECTORY APPEND PROPERTY ADDITIONAL_MAKE_CLEAN_FILES gitid.tex)
 add_custom_command(OUTPUT gitid.tex DEPENDS ctp-gitid)
 
-foreach(prog votca_property inkscape dvipdf)
+foreach(prog votca_property inkscape dvips ps2pdf)
   string(TOUPPER "${prog}" PROG)
   if(TARGET ${prog})
     set(${PROG} $<TARGET_FILE:${prog}>)
@@ -93,7 +93,8 @@
 )
 
 add_custom_command(OUTPUT ctp-manual.pdf
-  COMMAND ${DVIPDF} ctp-manual.dvi ctp-manual.pdf
+  COMMAND ${DVIPS} ctp-manual.dvi
+  COMMAND ${PS2PDF} ctp-manual.ps ctp-manual.pdf
   DEPENDS ctp-manual_dvi
 )
 add_custom_target(ctp-manual_pdf ALL DEPENDS ctp-manual.pdf)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/manual/fig/CMakeLists.txt 
new/ctp-1.5.1/manual/fig/CMakeLists.txt
--- old/ctp-1.5/manual/fig/CMakeLists.txt       2019-01-28 03:11:11.000000000 
+0100
+++ new/ctp-1.5.1/manual/fig/CMakeLists.txt     2019-11-21 03:37:03.000000000 
+0100
@@ -1,8 +1,9 @@
 foreach(PIC fig/logo fig/dcv2t fig/coupling fig/fragment_segment 
fig/monomer_parabolas fig/workflow)
   add_custom_command(OUTPUT ${PIC}.eps
-    COMMAND ${INKSCAPE} -f ${CMAKE_CURRENT_SOURCE_DIR}/${PIC}.svg
-      -E ${CMAKE_CURRENT_BINARY_DIR}/${PIC}.eps
-    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/fig
+    COMMAND ${CMAKE_COMMAND} -E copy_if_different 
${CMAKE_CURRENT_SOURCE_DIR}/${PIC}.svg
+        ${CMAKE_CURRENT_BINARY_DIR}/${PIC}.svg
+    COMMAND ${INKSCAPE} -f ${PIC}.svg -E ${PIC}.eps
+    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
     DEPENDS ${PIC}.svg)
   list(APPEND manual_FIGURES "${PIC}.eps")
 endforeach()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/apolarsite.cc 
new/ctp-1.5.1/src/libctp/apolarsite.cc
--- old/ctp-1.5/src/libctp/apolarsite.cc        2019-01-28 03:11:11.000000000 
+0100
+++ new/ctp-1.5.1/src/libctp/apolarsite.cc      2019-11-21 03:37:03.000000000 
+0100
@@ -806,14 +806,14 @@
                 double x, y, z;
 
                 if (units == "bohr") {
-                    x = BOHR2NM * boost::lexical_cast<double>(split[1]);
-                    y = BOHR2NM * boost::lexical_cast<double>(split[2]);
-                    z = BOHR2NM * boost::lexical_cast<double>(split[3]);
+                    x = BOHR2NM * stod(split[1]);
+                    y = BOHR2NM * stod(split[2]);
+                    z = BOHR2NM * stod(split[3]);
                 }
                 else if (units == "angstrom") {
-                    x = ANGSTROM2NM * boost::lexical_cast<double>(split[1]);
-                    y = ANGSTROM2NM * boost::lexical_cast<double>(split[2]);
-                    z = ANGSTROM2NM * boost::lexical_cast<double>(split[3]);
+                    x = ANGSTROM2NM * stod(split[1]);
+                    y = ANGSTROM2NM * stod(split[2]);
+                    z = ANGSTROM2NM * stod(split[3]);
                 }
                 else {
                     throw std::runtime_error( "Unit " + units + " in file "
@@ -834,18 +834,18 @@
                 double      pyy, pyz;
                 double           pzz;
                 if (split.size() == 7) {
-                    pxx = 1e-3 * boost::lexical_cast<double>(split[1]);
-                    pxy = 1e-3 * boost::lexical_cast<double>(split[2]);
-                    pxz = 1e-3 * boost::lexical_cast<double>(split[3]);
-                    pyy = 1e-3 * boost::lexical_cast<double>(split[4]);
-                    pyz = 1e-3 * boost::lexical_cast<double>(split[5]);
-                    pzz = 1e-3 * boost::lexical_cast<double>(split[6]);
+                    pxx = 1e-3 * stod(split[1]);
+                    pxy = 1e-3 * stod(split[2]);
+                    pxz = 1e-3 * stod(split[3]);
+                    pyy = 1e-3 * stod(split[4]);
+                    pyz = 1e-3 * stod(split[5]);
+                    pzz = 1e-3 * stod(split[6]);
                     P1 = matrix(vec(pxx,pxy,pxz),
                                 vec(pxy,pyy,pyz),
                                 vec(pxz,pyz,pzz));
                 }
                 else if (split.size() == 2) {
-                    pxx = 1e-3 * boost::lexical_cast<double>(split[1]);
+                    pxx = 1e-3 * stod(split[1]);
                     pxy = 0.0;
                     pxz = 0.0;
                     pyy = pxx;
@@ -866,10 +866,10 @@
             else {
                 int lineRank = int( sqrt(Qs.size()) + 0.5 );
                 if (lineRank == 0) {
-                    Q0_total += boost::lexical_cast<double>(split[0]);
+                    Q0_total += stod(split[0]);
                 }
                 for (unsigned i = 0; i < split.size(); i++) {
-                    double qXYZ = boost::lexical_cast<double>(split[i]);
+                    double qXYZ = stod(split[i]);
                     // Convert e*(a_0)^k to e*(nm)^k where k = rank
                     double BOHR2NM = 0.0529189379;
                     qXYZ *= pow(BOHR2NM, lineRank); // OVERRIDE
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/calculators/eimport.h 
new/ctp-1.5.1/src/libctp/calculators/eimport.h
--- old/ctp-1.5/src/libctp/calculators/eimport.h        2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/calculators/eimport.h      2019-11-21 
03:37:03.000000000 +0100
@@ -111,8 +111,8 @@
                     assert(state_N == 0);
                     assert(state_C*state_C == 1);
 
-                    double e_N = boost::lexical_cast<double>(split[3]);
-                    double e_C = boost::lexical_cast<double>(split[5]);
+                    double e_N = stod(split[3]);
+                    double e_C = stod(split[5]);
 
                     seg->setEMpoles(state_N, e_N);
                     seg->setEMpoles(state_C, e_C);
@@ -128,9 +128,9 @@
                     assert(state_A == -1);
                     assert(state_C == +1);
 
-                    double e_N = boost::lexical_cast<double>(split[3]);
-                    double e_A = boost::lexical_cast<double>(split[5]);
-                    double e_C = boost::lexical_cast<double>(split[7]);
+                    double e_N = stod(split[3]);
+                    double e_A = stod(split[5]);
+                    double e_C = stod(split[7]);
 
                     seg->setEMpoles(state_N, e_N);
                     seg->setEMpoles(state_A, e_A);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/calculators/emultipole.h 
new/ctp-1.5.1/src/libctp/calculators/emultipole.h
--- old/ctp-1.5/src/libctp/calculators/emultipole.h     2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/calculators/emultipole.h   2019-11-21 
03:37:03.000000000 +0100
@@ -989,14 +989,14 @@
                 double x, y, z;
 
                 if (units == "bohr") {
-                    x = BOHR2NM * boost::lexical_cast<double>(split[1]);
-                    y = BOHR2NM * boost::lexical_cast<double>(split[2]);
-                    z = BOHR2NM * boost::lexical_cast<double>(split[3]);
+                    x = BOHR2NM * stod(split[1]);
+                    y = BOHR2NM * stod(split[2]);
+                    z = BOHR2NM * stod(split[3]);
                 }
                 else if (units == "angstrom") {
-                    x = ANGSTROM2NM * boost::lexical_cast<double>(split[1]);
-                    y = ANGSTROM2NM * boost::lexical_cast<double>(split[2]);
-                    z = ANGSTROM2NM * boost::lexical_cast<double>(split[3]);
+                    x = ANGSTROM2NM * stod(split[1]);
+                    y = ANGSTROM2NM * stod(split[2]);
+                    z = ANGSTROM2NM * stod(split[3]);
                 }
                 else {
                     throw std::runtime_error( "Unit " + units + " in file "
@@ -1020,7 +1020,7 @@
                 if (split.size() == 7) {
                     warn_anisotropy = true;
                 }
-                P1 = 1e-3 * boost::lexical_cast<double>(split[1]);
+                P1 = 1e-3 * stod(split[1]);
                 thisPole->setPs(P1, state);
                 useDefaultPs = false;
             }
@@ -1031,12 +1031,12 @@
                 int lineRank = int( sqrt(thisPole->getQs(state).size()) + 0.5 
);
 
                 if (lineRank == 0) {
-                    Q0_total += boost::lexical_cast<double>(split[0]);
+                    Q0_total += stod(split[0]);
                 }
 
                 for (unsigned int i = 0; i < split.size(); i++) {
 
-                    double qXYZ = boost::lexical_cast<double>(split[i]);
+                    double qXYZ = stod(split[i]);
 
                     // Convert e*(a_0)^k to e*(nm)^k where k = rank
                     double BOHR2NM = 0.0529189379;
@@ -1141,9 +1141,9 @@
             if (lineCount == 3) {
 
                 assert( split.size() == 4 );
-                double ox = boost::lexical_cast<double>( split[1] );
-                double oy = boost::lexical_cast<double>( split[2] );
-                double oz = boost::lexical_cast<double>( split[3] );
+                double ox = stod( split[1] );
+                double oy = stod( split[2] );
+                double oz = stod( split[3] );
 
                 cube[0] = vec(ox, oy, oz);
             }
@@ -1170,12 +1170,12 @@
             if (lineCount == 4) {
 
                 assert( split.size() == 4 );
-                Nx = boost::lexical_cast<double>( split[0] );
+                Nx = stod( split[0] );
                 ext2nm = (Nx > 0) ? BOHR2NM : ANGSTROM2NM;
                 Nx = (Nx >= 0) ? Nx : -Nx;
-                double xx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double xy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double xz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double xx = ext2nm * stod( split[1] );
+                double xy = ext2nm * stod( split[2] );
+                double xz = ext2nm * stod( split[3] );
 
                 cube[2] = vec(xx, xy, xz);                
             }
@@ -1183,12 +1183,12 @@
             if (lineCount == 5) {
 
                 assert( split.size() == 4 );
-                Ny = boost::lexical_cast<double>( split[0] );
+                Ny = stod( split[0] );
                 ext2nm = (Ny > 0) ? BOHR2NM : ANGSTROM2NM;
                 Ny = (Ny >= 0) ? Ny : -Ny;
-                double yx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double yy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double yz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double yx = ext2nm * stod( split[1] );
+                double yy = ext2nm * stod( split[2] );
+                double yz = ext2nm * stod( split[3] );
 
                 cube[3] = vec(yx, yy, yz);
             }
@@ -1196,12 +1196,12 @@
             if (lineCount == 6) {
 
                 assert( split.size() == 4 );
-                Nz = boost::lexical_cast<double>( split[0] );
+                Nz = stod( split[0] );
                 ext2nm = (Nz > 0) ? BOHR2NM : ANGSTROM2NM;
                 Nz = (Nz >= 0) ? Nz : -Nz;
-                double zx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double zy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double zz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double zx = ext2nm * stod( split[1] );
+                double zy = ext2nm * stod( split[2] );
+                double zz = ext2nm * stod( split[3] );
 
                 cube[4] = vec(zx, zy, zz);
                 cube[1] = vec(Nx, Ny, Nz);
@@ -1650,9 +1650,9 @@
 
             else {
 
-                double x = CONVERT2NM * boost::lexical_cast<double>(split[0]);
-                double y = CONVERT2NM * boost::lexical_cast<double>(split[1]);
-                double z = CONVERT2NM * boost::lexical_cast<double>(split[2]);
+                double x = CONVERT2NM * stod(split[0]);
+                double y = CONVERT2NM * stod(split[1]);
+                double z = CONVERT2NM * stod(split[2]);
 
                 gridPoints.push_back(vec(x,y,z));
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/calculators/emultipole_stdal.h 
new/ctp-1.5.1/src/libctp/calculators/emultipole_stdal.h
--- old/ctp-1.5/src/libctp/calculators/emultipole_stdal.h       2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/calculators/emultipole_stdal.h     2019-11-21 
03:37:03.000000000 +0100
@@ -672,14 +672,14 @@
                 double x, y, z;
 
                 if (units == "bohr") {
-                    x = BOHR2NM * boost::lexical_cast<double>(split[1]);
-                    y = BOHR2NM * boost::lexical_cast<double>(split[2]);
-                    z = BOHR2NM * boost::lexical_cast<double>(split[3]);
+                    x = BOHR2NM * stod(split[1]);
+                    y = BOHR2NM * stod(split[2]);
+                    z = BOHR2NM * stod(split[3]);
                 }
                 else if (units == "angstrom") {
-                    x = ANGSTROM2NM * boost::lexical_cast<double>(split[1]);
-                    y = ANGSTROM2NM * boost::lexical_cast<double>(split[2]);
-                    z = ANGSTROM2NM * boost::lexical_cast<double>(split[3]);
+                    x = ANGSTROM2NM * stod(split[1]);
+                    y = ANGSTROM2NM * stod(split[2]);
+                    z = ANGSTROM2NM * stod(split[3]);
                 }
                 else {
                     throw std::runtime_error( "Unit " + units + " in file "
@@ -700,7 +700,7 @@
 
             // 'P', dipole polarizability
             else if ( split[0] == "P" && split.size() == 2 ) {
-                P1 = 1e-3 * boost::lexical_cast<double>(split[1]);
+                P1 = 1e-3 * stod(split[1]);
                 thisPole->setPs(P1, state);
                 useDefaultPs = false;
             }
@@ -711,12 +711,12 @@
                 int lineRank = int( sqrt(thisPole->getQs(state).size()) + 0.5 
);
 
                 if (lineRank == 0) {
-                    Q0_total += boost::lexical_cast<double>(split[0]);
+                    Q0_total += stod(split[0]);
                 }
 
                 for (unsigned int i = 0; i < split.size(); i++) {
 
-                    double qXYZ = boost::lexical_cast<double>(split[i]);
+                    double qXYZ = stod(split[i]);
 
                     // Convert e*(a_0)^k to e*(nm)^k where k = rank
                     double BOHR2NM = 0.0529189379;
@@ -816,9 +816,9 @@
             if (lineCount == 3) {
 
                 assert( split.size() == 4 );
-                double ox = boost::lexical_cast<double>( split[1] );
-                double oy = boost::lexical_cast<double>( split[2] );
-                double oz = boost::lexical_cast<double>( split[3] );
+                double ox = stod( split[1] );
+                double oy = stod( split[2] );
+                double oz = stod( split[3] );
 
                 cube[0] = vec(ox, oy, oz);
             }
@@ -845,12 +845,12 @@
             if (lineCount == 4) {
 
                 assert( split.size() == 4 );
-                Nx = boost::lexical_cast<double>( split[0] );
+                Nx = stod( split[0] );
                 ext2nm = (Nx > 0) ? BOHR2NM : ANGSTROM2NM;
                 Nx = (Nx >= 0) ? Nx : -Nx;
-                double xx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double xy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double xz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double xx = ext2nm * stod( split[1] );
+                double xy = ext2nm * stod( split[2] );
+                double xz = ext2nm * stod( split[3] );
 
                 cube[2] = vec(xx, xy, xz);                
             }
@@ -858,12 +858,12 @@
             if (lineCount == 5) {
 
                 assert( split.size() == 4 );
-                Ny = boost::lexical_cast<double>( split[0] );
+                Ny = stod( split[0] );
                 ext2nm = (Ny > 0) ? BOHR2NM : ANGSTROM2NM;
                 Ny = (Ny >= 0) ? Ny : -Ny;
-                double yx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double yy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double yz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double yx = ext2nm * stod( split[1] );
+                double yy = ext2nm * stod( split[2] );
+                double yz = ext2nm * stod( split[3] );
 
                 cube[3] = vec(yx, yy, yz);
             }
@@ -871,12 +871,12 @@
             if (lineCount == 6) {
 
                 assert( split.size() == 4 );
-                Nz = boost::lexical_cast<double>( split[0] );
+                Nz = stod( split[0] );
                 ext2nm = (Nz > 0) ? BOHR2NM : ANGSTROM2NM;
                 Nz = (Nz >= 0) ? Nz : -Nz;
-                double zx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double zy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double zz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double zx = ext2nm * stod( split[1] );
+                double zy = ext2nm * stod( split[2] );
+                double zz = ext2nm * stod( split[3] );
 
                 cube[4] = vec(zx, zy, zz);
                 cube[1] = vec(Nx, Ny, Nz);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/calculators/eoutersphere.cc 
new/ctp-1.5.1/src/libctp/calculators/eoutersphere.cc
--- old/ctp-1.5/src/libctp/calculators/eoutersphere.cc  2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/calculators/eoutersphere.cc        2019-11-21 
03:37:03.000000000 +0100
@@ -378,14 +378,14 @@
                 double x, y, z;
 
                 if (units == "bohr") {
-                    x = BOHR2NM * boost::lexical_cast<double>(split[1]);
-                    y = BOHR2NM * boost::lexical_cast<double>(split[2]);
-                    z = BOHR2NM * boost::lexical_cast<double>(split[3]);
+                    x = BOHR2NM * stod(split[1]);
+                    y = BOHR2NM * stod(split[2]);
+                    z = BOHR2NM * stod(split[3]);
                 }
                 else if (units == "angstrom") {
-                    x = ANGSTROM2NM * boost::lexical_cast<double>(split[1]);
-                    y = ANGSTROM2NM * boost::lexical_cast<double>(split[2]);
-                    z = ANGSTROM2NM * boost::lexical_cast<double>(split[3]);
+                    x = ANGSTROM2NM * stod(split[1]);
+                    y = ANGSTROM2NM * stod(split[2]);
+                    z = ANGSTROM2NM * stod(split[3]);
                 }
                 else {
                     throw std::runtime_error( "Unit " + units + " in file "
@@ -409,7 +409,7 @@
                 if (split.size() == 7) {
                     warn_anisotropy = true;
                 }
-                P1 = 1e-3 * boost::lexical_cast<double>(split[1]);
+                P1 = 1e-3 * stod(split[1]);
                 thisPole->setPs(P1, state);
                 useDefaultPs = false;
             }
@@ -420,12 +420,12 @@
                 int lineRank = int( sqrt(thisPole->getQs(state).size()) + 0.5 
);
 
                 if (lineRank == 0) {
-                    Q0_total += boost::lexical_cast<double>(split[0]);
+                    Q0_total += stod(split[0]);
                 }
 
                 for (unsigned int i = 0; i < split.size(); i++) {
 
-                    double qXYZ = boost::lexical_cast<double>(split[i]);
+                    double qXYZ = stod(split[i]);
 
                     // Convert e*(a_0)^k to e*(nm)^k where k = rank
                     double BOHR2NM = 0.0529189379;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/calculators/iimport.h 
new/ctp-1.5.1/src/libctp/calculators/iimport.h
--- old/ctp-1.5/src/libctp/calculators/iimport.h        2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/calculators/iimport.h      2019-11-21 
03:37:03.000000000 +0100
@@ -192,7 +192,7 @@
             }            
 
             int e_h_1 = (split[2] == "e") ? -1 : +1;
-            double j2_1 = boost::lexical_cast<double>(split[3]);
+            double j2_1 = stod(split[3]);
 
             if (split.size() == 6) {
 
@@ -201,7 +201,7 @@
                     cout << endl << "... ... Invalid line: " << line << flush;
                     continue;
                 }
-                double j2_2 = boost::lexical_cast<double>(split[5]);
+                double j2_2 = stod(split[5]);
 
                 qmp->setJeff2(j2_2, e_h_2);
                 qmp->setIsPathCarrier(true, e_h_2);
@@ -295,9 +295,9 @@
                       split[0] == "!"   ||
                       split[0].substr(0,1) == "!" ) { continue; }
              
-                double distance          = 
boost::lexical_cast<double>(split[0]);
-                double mean              = 
boost::lexical_cast<double>(split[1]);
-                double sigma             = 
boost::lexical_cast<double>(split[2]);
+                double distance          = stod(split[0]);
+                double mean              = stod(split[1]);
+                double sigma             = stod(split[2]);
                 cout << "        " << distance << " nm:   " << mean << " +/- " 
<< sigma << endl;
                 distances.push_back(distance);
                 means.push_back(mean);
@@ -384,14 +384,14 @@
                 assert(TRANSPORT == "electron" || TRANSPORT == "hole");
                 STATE = (TRANSPORT == "electron") ? -1 : +1;
                 if (_TI_tag == "J" || _TI_tag == "T_00") {
-                    double J = boost::lexical_cast<double>(split[1]);
+                    double J = stod(split[1]);
                     qmpair->setJeff2(J*J, STATE);
                     qmpair->setIsPathCarrier(1, STATE);
                     printf("\n... ... ... J2(State = %+1d) = %4.7e",
                             STATE, qmpair->getJeff2(STATE));
                 }
                 else if (_TI_tag == "J_sq_degen" || _TI_tag == "J_sq_boltz") {
-                    double J2 = boost::lexical_cast<double>(split[1]);
+                    double J2 = stod(split[1]);
                     qmpair->setJeff2(J2, STATE);
                     qmpair->setIsPathCarrier(1, STATE);
                     printf("\n... ... ... J2(State = %+1d) = %4.7e",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/calculators/qmultipole.h 
new/ctp-1.5.1/src/libctp/calculators/qmultipole.h
--- old/ctp-1.5/src/libctp/calculators/qmultipole.h     2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/calculators/qmultipole.h   2019-11-21 
03:37:03.000000000 +0100
@@ -945,9 +945,9 @@
             if (lineCount == 3) {
 
                 assert( split.size() == 4 );
-                double ox = boost::lexical_cast<double>( split[1] );
-                double oy = boost::lexical_cast<double>( split[2] );
-                double oz = boost::lexical_cast<double>( split[3] );
+                double ox = stod( split[1] );
+                double oy = stod( split[2] );
+                double oz = stod( split[3] );
 
                 cube[0] = vec(ox, oy, oz);
             }
@@ -974,12 +974,12 @@
             if (lineCount == 4) {
 
                 assert( split.size() == 4 );
-                Nx = boost::lexical_cast<double>( split[0] );
+                Nx = stod( split[0] );
                 ext2nm = (Nx > 0) ? BOHR2NM : ANGSTROM2NM;
                 Nx = (Nx >= 0) ? Nx : -Nx;
-                double xx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double xy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double xz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double xx = ext2nm * stod( split[1] );
+                double xy = ext2nm * stod( split[2] );
+                double xz = ext2nm * stod( split[3] );
 
                 cube[2] = vec(xx, xy, xz);
             }
@@ -987,12 +987,12 @@
             if (lineCount == 5) {
 
                 assert( split.size() == 4 );
-                Ny = boost::lexical_cast<double>( split[0] );
+                Ny = stod( split[0] );
                 ext2nm = (Ny > 0) ? BOHR2NM : ANGSTROM2NM;
                 Ny = (Ny >= 0) ? Ny : -Ny;
-                double yx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double yy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double yz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double yx = ext2nm * stod( split[1] );
+                double yy = ext2nm * stod( split[2] );
+                double yz = ext2nm * stod( split[3] );
 
                 cube[3] = vec(yx, yy, yz);
             }
@@ -1000,12 +1000,12 @@
             if (lineCount == 6) {
 
                 assert( split.size() == 4 );
-                Nz = boost::lexical_cast<double>( split[0] );
+                Nz = stod( split[0] );
                 ext2nm = (Nz > 0) ? BOHR2NM : ANGSTROM2NM;
                 Nz = (Nz >= 0) ? Nz : -Nz;
-                double zx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double zy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double zz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double zx = ext2nm * stod( split[1] );
+                double zy = ext2nm * stod( split[2] );
+                double zz = ext2nm * stod( split[3] );
 
                 cube[4] = vec(zx, zy, zz);
                 cube[1] = vec(Nx, Ny, Nz);
@@ -1325,9 +1325,9 @@
 
             else {
 
-                double x = CONVERT2NM * boost::lexical_cast<double>(split[0]);
-                double y = CONVERT2NM * boost::lexical_cast<double>(split[1]);
-                double z = CONVERT2NM * boost::lexical_cast<double>(split[2]);
+                double x = CONVERT2NM * stod(split[0]);
+                double y = CONVERT2NM * stod(split[1]);
+                double z = CONVERT2NM * stod(split[2]);
 
                 gridPoints.push_back(vec(x,y,z));
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/calculators/xmultipole.h 
new/ctp-1.5.1/src/libctp/calculators/xmultipole.h
--- old/ctp-1.5/src/libctp/calculators/xmultipole.h     2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/calculators/xmultipole.h   2019-11-21 
03:37:03.000000000 +0100
@@ -893,14 +893,14 @@
                 double x, y, z;
 
                 if (units == "bohr") {
-                    x = BOHR2NM * boost::lexical_cast<double>(split[1]);
-                    y = BOHR2NM * boost::lexical_cast<double>(split[2]);
-                    z = BOHR2NM * boost::lexical_cast<double>(split[3]);
+                    x = BOHR2NM * stod(split[1]);
+                    y = BOHR2NM * stod(split[2]);
+                    z = BOHR2NM * stod(split[3]);
                 }
                 else if (units == "angstrom") {
-                    x = ANGSTROM2NM * boost::lexical_cast<double>(split[1]);
-                    y = ANGSTROM2NM * boost::lexical_cast<double>(split[2]);
-                    z = ANGSTROM2NM * boost::lexical_cast<double>(split[3]);
+                    x = ANGSTROM2NM * stod(split[1]);
+                    y = ANGSTROM2NM * stod(split[2]);
+                    z = ANGSTROM2NM * stod(split[3]);
                 }
                 else {
                     throw std::runtime_error( "Unit " + units + " in file "
@@ -921,7 +921,7 @@
 
             // 'P', dipole polarizability
             else if ( split[0] == "P" && split.size() == 2 ) {
-                P1 = 1e-3 * boost::lexical_cast<double>(split[1]);
+                P1 = 1e-3 * stod(split[1]);
                 thisPole->setPs(P1, state);
                 useDefaultPs = false;
             }
@@ -932,12 +932,12 @@
                 int lineRank = int( sqrt(thisPole->getQs(state).size()) + 0.5 
);
 
                 if (lineRank == 0) {
-                    Q0_total += boost::lexical_cast<double>(split[0]);
+                    Q0_total += stod(split[0]);
                 }
 
                 for (int i = 0; i < split.size(); i++) {
 
-                    double qXYZ = boost::lexical_cast<double>(split[i]);
+                    double qXYZ = stod(split[i]);
 
                     // Convert e*(a_0)^k to e*(nm)^k where k = rank
                     double BOHR2NM = 0.0529189379;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/calculators/xmultipole2.h 
new/ctp-1.5.1/src/libctp/calculators/xmultipole2.h
--- old/ctp-1.5/src/libctp/calculators/xmultipole2.h    2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/calculators/xmultipole2.h  2019-11-21 
03:37:03.000000000 +0100
@@ -1963,14 +1963,14 @@
                 double x, y, z;
 
                 if (units == "bohr") {
-                    x = BOHR2NM * boost::lexical_cast<double>(split[1]);
-                    y = BOHR2NM * boost::lexical_cast<double>(split[2]);
-                    z = BOHR2NM * boost::lexical_cast<double>(split[3]);
+                    x = BOHR2NM * stod(split[1]);
+                    y = BOHR2NM * stod(split[2]);
+                    z = BOHR2NM * stod(split[3]);
                 }
                 else if (units == "angstrom") {
-                    x = ANGSTROM2NM * boost::lexical_cast<double>(split[1]);
-                    y = ANGSTROM2NM * boost::lexical_cast<double>(split[2]);
-                    z = ANGSTROM2NM * boost::lexical_cast<double>(split[3]);
+                    x = ANGSTROM2NM * stod(split[1]);
+                    y = ANGSTROM2NM * stod(split[2]);
+                    z = ANGSTROM2NM * stod(split[3]);
                 }
                 else {
                     throw std::runtime_error( "Unit " + units + " in file "
@@ -1991,7 +1991,7 @@
 
             // 'P', dipole polarizability
             else if ( split[0] == "P" && split.size() == 2 ) {
-                P1 = 1e-3 * boost::lexical_cast<double>(split[1]);
+                P1 = 1e-3 * stod(split[1]);
                 thisPole->setPs(P1, state);
                 useDefaultPs = false;
             }
@@ -2002,12 +2002,12 @@
                 int lineRank = int( sqrt(thisPole->getQs(state).size()) + 0.5 
);
 
                 if (lineRank == 0) {
-                    Q0_total += boost::lexical_cast<double>(split[0]);
+                    Q0_total += stod(split[0]);
                 }
 
                 for (unsigned int i = 0; i < split.size(); i++) {
 
-                    double qXYZ = boost::lexical_cast<double>(split[i]);
+                    double qXYZ = stod(split[i]);
 
                     // Convert e*(a_0)^k to e*(nm)^k where k = rank
                     double BOHR2NM = 0.0529189379;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/calculators/zmultipole.h 
new/ctp-1.5.1/src/libctp/calculators/zmultipole.h
--- old/ctp-1.5/src/libctp/calculators/zmultipole.h     2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/calculators/zmultipole.h   2019-11-21 
03:37:03.000000000 +0100
@@ -938,9 +938,9 @@
             if (lineCount == 3) {
 
                 assert( split.size() == 4 );
-                double ox = boost::lexical_cast<double>( split[1] );
-                double oy = boost::lexical_cast<double>( split[2] );
-                double oz = boost::lexical_cast<double>( split[3] );
+                double ox = stod( split[1] );
+                double oy = stod( split[2] );
+                double oz = stod( split[3] );
 
                 cube[0] = vec(ox, oy, oz);
             }
@@ -967,12 +967,12 @@
             if (lineCount == 4) {
 
                 assert( split.size() == 4 );
-                Nx = boost::lexical_cast<double>( split[0] );
+                Nx = stod( split[0] );
                 ext2nm = (Nx > 0) ? BOHR2NM : ANGSTROM2NM;
                 Nx = (Nx >= 0) ? Nx : -Nx;
-                double xx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double xy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double xz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double xx = ext2nm * stod( split[1] );
+                double xy = ext2nm * stod( split[2] );
+                double xz = ext2nm * stod( split[3] );
 
                 cube[2] = vec(xx, xy, xz);
             }
@@ -980,12 +980,12 @@
             if (lineCount == 5) {
 
                 assert( split.size() == 4 );
-                Ny = boost::lexical_cast<double>( split[0] );
+                Ny = stod( split[0] );
                 ext2nm = (Ny > 0) ? BOHR2NM : ANGSTROM2NM;
                 Ny = (Ny >= 0) ? Ny : -Ny;
-                double yx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double yy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double yz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double yx = ext2nm * stod( split[1] );
+                double yy = ext2nm * stod( split[2] );
+                double yz = ext2nm * stod( split[3] );
 
                 cube[3] = vec(yx, yy, yz);
             }
@@ -993,12 +993,12 @@
             if (lineCount == 6) {
 
                 assert( split.size() == 4 );
-                Nz = boost::lexical_cast<double>( split[0] );
+                Nz = stod( split[0] );
                 ext2nm = (Nz > 0) ? BOHR2NM : ANGSTROM2NM;
                 Nz = (Nz >= 0) ? Nz : -Nz;
-                double zx = ext2nm * boost::lexical_cast<double>( split[1] );
-                double zy = ext2nm * boost::lexical_cast<double>( split[2] );
-                double zz = ext2nm * boost::lexical_cast<double>( split[3] );
+                double zx = ext2nm * stod( split[1] );
+                double zy = ext2nm * stod( split[2] );
+                double zz = ext2nm * stod( split[3] );
 
                 cube[4] = vec(zx, zy, zz);
                 cube[1] = vec(Nx, Ny, Nz);
@@ -1322,9 +1322,9 @@
 
             else {
 
-                double x = CONVERT2NM * boost::lexical_cast<double>(split[0]);
-                double y = CONVERT2NM * boost::lexical_cast<double>(split[1]);
-                double z = CONVERT2NM * boost::lexical_cast<double>(split[2]);
+                double x = CONVERT2NM * stod(split[0]);
+                double y = CONVERT2NM * stod(split[1]);
+                double z = CONVERT2NM * stod(split[2]);
 
                 gridPoints.push_back(vec(x,y,z));
             }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/qmpackages/gaussian.cc 
new/ctp-1.5.1/src/libctp/qmpackages/gaussian.cc
--- old/ctp-1.5/src/libctp/qmpackages/gaussian.cc       2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/qmpackages/gaussian.cc     2019-11-21 
03:37:03.000000000 +0100
@@ -412,7 +412,7 @@
             
             _level = boost::lexical_cast<int>(results.front());
             boost::replace_first(results.back(), "D", "e");
-            _energies[ _level ] = boost::lexical_cast<double>( results.back() 
);            
+            _energies[ _level ] = stod( results.back() );            
             _levels++;
 
         } else {
@@ -422,7 +422,7 @@
                 _coefficient.assign( _line, 0, 15 );
                 boost::trim( _coefficient );
                 boost::replace_first( _coefficient, "D", "e" );
-                double coefficient = boost::lexical_cast<double>( _coefficient 
);
+                double coefficient = stod( _coefficient );
                 _coefficients[ _level ].push_back( coefficient );
                 _line.erase(0, 15);
             }
@@ -579,7 +579,7 @@
         /*std::string::size_type HFX_pos = _line.find("ScaHFX=");
          if (HFX_pos != std::string::npos) {
              boost::algorithm::split(results, _line, boost::is_any_of("\t "), 
boost::algorithm::token_compress_on);
-             double _ScaHFX = boost::lexical_cast<double>(results.back()) ;
+             double _ScaHFX = stod(results.back()) ;
              _orbitals->setScaHFX( _ScaHFX );
              CTP_LOG(logDEBUG,*_pLog) << "DFT with " << _ScaHFX << " of HF 
exchange!" << flush ;
          } */
@@ -728,11 +728,11 @@
                         string  _coefficient = *iter;
                        
                         boost::replace_first( _coefficient, "D", "e" );
-                        //cout << boost::lexical_cast<double>( _coefficient ) 
<< endl;
+                        //cout << stod( _coefficient ) << endl;
                         
                         int _j_index = *_j_iter;                               
 
-                        //_overlap( _i_index-1 , _j_index-1 ) = 
boost::lexical_cast<double>( _coefficient );
-                        overlap( _i_index-1 , _j_index-1 ) = 
boost::lexical_cast<double>( _coefficient );
+                        //_overlap( _i_index-1 , _j_index-1 ) = stod( 
_coefficient );
+                        overlap( _i_index-1 , _j_index-1 ) = stod( 
_coefficient );
                         _j_iter++;
                         
                     }
@@ -836,9 +836,9 @@
                 
                 vector<string>::iterator it_atom;
                 it_atom = atom.end();
-                double _z =  boost::lexical_cast<double>( *(--it_atom) );
-                double _y =  boost::lexical_cast<double>( *(--it_atom) );
-                double _x =  boost::lexical_cast<double>( *(--it_atom) );
+                double _z =  stod( *(--it_atom) );
+                double _y =  stod( *(--it_atom) );
+                double _x =  stod( *(--it_atom) );
                 
                 if ( _has_atoms == false ) {
                         _orbitals->AddAtom( _atom_type, _x, _y, _z );
@@ -859,7 +859,7 @@
             vector<string> energy;
             boost::algorithm::split(block, *coord_block, 
boost::is_any_of("\\"), boost::algorithm::token_compress_on);
             //boost::algorithm::split(energy, block[1], boost::is_any_of("="), 
boost::algorithm::token_compress_on);
-            //_orbitals->setQMEnergy( _conv_Hrt_eV * 
boost::lexical_cast<double> ( energy[1] ) );
+            //_orbitals->setQMEnergy( _conv_Hrt_eV * stod( energy[1] ) );
             map<string,string> properties;
             vector<string>::iterator block_it;
             for (block_it = block.begin(); block_it != block.end(); 
++block_it) {
@@ -872,7 +872,7 @@
             //_orbitals->_has_atoms = true;
             //_orbitals->_has_qm_energy = true;
             if (properties.count("HF") > 0) {
-                double energy_hartree = 
boost::lexical_cast<double>(properties["HF"]);
+                double energy_hartree = stod(properties["HF"]);
                 //_orbitals->setQMEnergy(_has_qm_energy = true;
                 _orbitals-> setQMEnergy( _conv_Hrt_eV * energy_hartree );
                 CTP_LOG(logDEBUG, *_pLog) << "QM energy " << 
_orbitals->_qm_energy <<  flush;
@@ -884,7 +884,7 @@
             
 //            boost::algorithm::split(energy, block[1], boost::is_any_of("="), 
boost::algorithm::token_compress_on);
 //            cout << endl << energy[1] << endl;
-//            _orbitals->_qm_energy = _conv_Hrt_eV * 
boost::lexical_cast<double> ( energy[1] );
+//            _orbitals->_qm_energy = _conv_Hrt_eV * stod( energy[1] );
 //            
 //            CTP_LOG(logDEBUG, *_pLog) << "QM energy " << 
_orbitals->_qm_energy <<  flush;
 //            _has_qm_energy = true;
@@ -904,7 +904,7 @@
             boost::algorithm::split(energy, block[1], boost::is_any_of("\t "), 
boost::algorithm::token_compress_on);
             
             // _orbitals->_has_self_energy = true;
-            _orbitals->setSelfEnergy( _conv_Hrt_eV * 
boost::lexical_cast<double> ( energy[1] ) );
+            _orbitals->setSelfEnergy( _conv_Hrt_eV * stod( energy[1] ) );
             
             CTP_LOG(logDEBUG, *_pLog) << "Self energy = " << 
_orbitals->getSelfEnergy() <<  flush;
 
@@ -962,8 +962,8 @@
                 
            int _i_index = boost::lexical_cast<int>(  _row[0]  ); 
            int _j_index = boost::lexical_cast<int>(  _row[1]  );
-           //cout << "Vxc element [" << _i_index << ":" << _j_index << "] " << 
boost::lexical_cast<double>( _row[2] ) << endl;
-           _vxc( _i_index-1 , _j_index-1 ) = boost::lexical_cast<double>( 
_row[2] );
+           //cout << "Vxc element [" << _i_index << ":" << _j_index << "] " << 
stod( _row[2] ) << endl;
+           _vxc( _i_index-1 , _j_index-1 ) = stod( _row[2] );
         }
         
         CTP_LOG(logDEBUG,*_pLog) << "Done parsing" << flush;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/qmpackages/nwchem.cc 
new/ctp-1.5.1/src/libctp/qmpackages/nwchem.cc
--- old/ctp-1.5/src/libctp/qmpackages/nwchem.cc 2019-01-28 03:11:11.000000000 
+0100
+++ new/ctp-1.5.1/src/libctp/qmpackages/nwchem.cc       2019-11-21 
03:37:03.000000000 +0100
@@ -671,7 +671,7 @@
             boost::algorithm::split(results, _line, boost::is_any_of("="), 
boost::algorithm::token_compress_on);
             string _energy = results.back();
             boost::trim( _energy );
-            _orbitals->setQMEnergy ( _conv_Hrt_eV * 
boost::lexical_cast<double>(_energy) );
+            _orbitals->setQMEnergy ( _conv_Hrt_eV * stod(_energy) );
             CTP_LOG(logDEBUG, *_pLog) << "QM energy " << 
_orbitals->getQMEnergy() <<  flush;
             _has_qm_energy = true;
             // _orbitals->_has_qm_energy = true;
@@ -727,7 +727,7 @@
                         string  _coefficient = *iter;
                        
                         int _j_index = *_j_iter;                               
 
-                        _orbitals->_overlap( _i_index-1 , _j_index-1 ) = 
boost::lexical_cast<double>( _coefficient );
+                        _orbitals->_overlap( _i_index-1 , _j_index-1 ) = stod( 
_coefficient );
                         _j_iter++;
                         
                     }
@@ -829,9 +829,9 @@
                 //int atom_number = boost::lexical_cast< int >( _row.at(0) );
                 
                 string _atom_type = _row.at(1);
-                double _x =  boost::lexical_cast<double>( _row.at(3) );
-                double _y =  boost::lexical_cast<double>( _row.at(4) );
-                double _z =  boost::lexical_cast<double>( _row.at(5) );
+                double _x =  stod( _row.at(3) );
+                double _y =  stod( _row.at(4) );
+                double _z =  stod( _row.at(5) );
                 //if ( tools::globals::verbose ) cout << "... ... " << atom_id 
<< " " << atom_type << " " << atom_charge << endl;
                 getline(_input_file, _line);
                 boost::trim( _line );
@@ -868,7 +868,7 @@
             boost::algorithm::split(energy, block[1], boost::is_any_of("\t "), 
boost::algorithm::token_compress_on);
             
             // _orbitals->_has_self_energy = true;
-            _orbitals->setSelfEnergy( _conv_Hrt_eV * 
boost::lexical_cast<double> ( energy[1] ) );
+            _orbitals->setSelfEnergy( _conv_Hrt_eV * stod( energy[1] ) );
             
             CTP_LOG(logDEBUG, *_pLog) << "Self energy " << 
_orbitals->getSelfEnergy() <<  flush;
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/qmpackages/turbomole.cc 
new/ctp-1.5.1/src/libctp/qmpackages/turbomole.cc
--- old/ctp-1.5/src/libctp/qmpackages/turbomole.cc      2019-01-28 
03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libctp/qmpackages/turbomole.cc    2019-11-21 
03:37:03.000000000 +0100
@@ -28,6 +28,7 @@
 #include <boost/filesystem.hpp>
 
 #include <stdio.h>
+#include <string>
 #include <iomanip>
 #include <sys/stat.h>
 
@@ -368,7 +369,7 @@
             
             _level = boost::lexical_cast<int>(results.front());
             boost::replace_first(results[3], "D", "e");
-            _energies[ _level ] = boost::lexical_cast<double>( results[3] );   
         
+            _energies[ _level ] = std::stod( results[3] );            
             _levels++;
 
         } else if ( dollar_pos == std::string::npos ) {
@@ -378,7 +379,7 @@
                 _coefficient.assign( _line, 0, 20 );
                 boost::trim( _coefficient );
                 boost::replace_first( _coefficient, "D", "e" );
-                double coefficient = boost::lexical_cast<double>( _coefficient 
);
+                double coefficient = std::stod( _coefficient );
                 _coefficients[ _level ].push_back( coefficient );
                 _line.erase(0, 20);
             }
@@ -611,10 +612,10 @@
                     //cout << "  " << *it << endl;
                             
                     boost::trim( *it );
-                    double _coefficient = boost::lexical_cast<double>( *it );
+                    double _coefficient = std::stod( *it );
                     //cout << _i_index << ":" << _j_index << ":" << 
_coefficient << endl;
                     
-                    _orbitals->_overlap( _i_index , _j_index ) = 
boost::lexical_cast<double>( _coefficient );
+                    _orbitals->_overlap( _i_index , _j_index ) = ( 
_coefficient );
                     
                     _j_index++;
                     if ( _j_index > _i_index ) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/tools/pdb2map.h 
new/ctp-1.5.1/src/libctp/tools/pdb2map.h
--- old/ctp-1.5/src/libctp/tools/pdb2map.h      2019-01-28 03:11:11.000000000 
+0100
+++ new/ctp-1.5.1/src/libctp/tools/pdb2map.h    2019-11-21 03:37:03.000000000 
+0100
@@ -366,9 +366,9 @@
             
             try
             {
-            _xd = boost::lexical_cast<double>(_x);
-            _yd = boost::lexical_cast<double>(_y);
-            _zd = boost::lexical_cast<double>(_z);
+            _xd = stod(_x);
+            _yd = stod(_y);
+            _zd = stod(_z);
             _resNumInt = boost::lexical_cast<int>(_resNum);
             }
             catch(boost::bad_lexical_cast &)
@@ -519,9 +519,9 @@
                 _resNumInt = boost::lexical_cast<int>(_resNum);
                //_atNumInt  = boost::lexical_cast<int>(_atNum);
 
-                _xd = boost::lexical_cast<double>(_x);
-                _yd = boost::lexical_cast<double>(_y);
-                _zd = boost::lexical_cast<double>(_z);
+                _xd = stod(_x);
+                _yd = stod(_y);
+                _zd = stod(_z);
             }
             catch (boost::bad_lexical_cast &)
             {
@@ -635,7 +635,7 @@
         // first line, number of atoms in XYZ
         std::getline(_file, _line,'\n');
         ba::trim(_line);
-        //int numXYZatoms = boost::lexical_cast<double>(_line);
+        //int numXYZatoms = stod(_line);
     }
     catch(boost::bad_lexical_cast &)
     {
@@ -665,9 +665,9 @@
         // try transform xyz coords to double
         double _xd(0),_yd(0),_zd(0);
         try{
-            _xd = boost::lexical_cast<double>(_x);
-            _yd = boost::lexical_cast<double>(_y);
-            _zd = boost::lexical_cast<double>(_z);
+            _xd = stod(_x);
+            _yd = stod(_y);
+            _zd = stod(_z);
         }
         catch(boost::bad_lexical_cast &)
         {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libctp/tools/pdb2top.h 
new/ctp-1.5.1/src/libctp/tools/pdb2top.h
--- old/ctp-1.5/src/libctp/tools/pdb2top.h      2019-01-28 03:11:11.000000000 
+0100
+++ new/ctp-1.5.1/src/libctp/tools/pdb2top.h    2019-11-21 03:37:03.000000000 
+0100
@@ -308,9 +308,9 @@
             
             try
             {
-            _xd = boost::lexical_cast<double>(_x);
-            _yd = boost::lexical_cast<double>(_y);
-            _zd = boost::lexical_cast<double>(_z);
+            _xd = stod(_x);
+            _yd = stod(_y);
+            _zd = stod(_z);
             _resNumInt = boost::lexical_cast<int>(_resNum);
             }
             catch(boost::bad_lexical_cast &)
@@ -458,9 +458,9 @@
                 _resNumInt = boost::lexical_cast<int>(_resNum);
                 //_atNumInt  = boost::lexical_cast<int>(_atNum);
 
-                _xd = boost::lexical_cast<double>(_x);
-                _yd = boost::lexical_cast<double>(_y);
-                _zd = boost::lexical_cast<double>(_z);
+                _xd = stod(_x);
+                _yd = stod(_y);
+                _zd = stod(_z);
             }
             catch (boost::bad_lexical_cast &)
             {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/libmoo/fock.cc 
new/ctp-1.5.1/src/libmoo/fock.cc
--- old/ctp-1.5/src/libmoo/fock.cc      2019-01-28 03:11:11.000000000 +0100
+++ new/ctp-1.5.1/src/libmoo/fock.cc    2019-11-21 03:37:03.000000000 +0100
@@ -87,12 +87,12 @@
     vector<string>::iterator it= Mutok.begin();
     for (; it != Mutok.end();++it)
     {
-        Mu.push_back(boost::lexical_cast<double>(*it));
+        Mu.push_back(stod(*it));
     }
      it= Betatok.begin();
     for (; it != Betatok.end();++it)
     {
-        Beta.push_back(boost::lexical_cast<double>(*it));
+        Beta.push_back(stod(*it));
     }
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/ctp-1.5/src/tools/Md2QmEngine.cc 
new/ctp-1.5.1/src/tools/Md2QmEngine.cc
--- old/ctp-1.5/src/tools/Md2QmEngine.cc        2019-01-28 03:11:11.000000000 
+0100
+++ new/ctp-1.5.1/src/tools/Md2QmEngine.cc      2019-11-21 03:37:03.000000000 
+0100
@@ -231,7 +231,7 @@
                }
                
                // Mapping weight
-               double weight = boost::lexical_cast<double>(*it_atom_weight);
+               double weight = stod(*it_atom_weight);
                if (!hasQMPart && weight != 0) {
                    cout << "ERROR: "
                         << "Atom " << md_atom_name << " in residue "
@@ -574,9 +574,9 @@
             // Interesting information written here: e.g. 'C 0.000 0.000 0.000'
             atomCount++;
             string element = split[0];
-            double x = boost::lexical_cast<double>( split[1] ) / 10.; //°A to 
NM
-            double y = boost::lexical_cast<double>( split[2] ) / 10.;
-            double z = boost::lexical_cast<double>( split[3] ) / 10.;
+            double x = stod( split[1] ) / 10.; //°A to NM
+            double y = stod( split[2] ) / 10.;
+            double z = stod( split[3] ) / 10.;
             vec qmPos = vec(x,y,z);
 
             pair<string, vec> qmTypePos(element, qmPos);

++++++ votca-ctp-manual-1.5.pdf -> votca-ctp-manual-1.5.1.pdf ++++++
(binary differes)


Reply via email to