diff options
author | Justin Lecher <jlec@gentoo.org> | 2014-03-26 13:27:45 +0000 |
---|---|---|
committer | Justin Lecher <jlec@gentoo.org> | 2014-03-26 13:27:45 +0000 |
commit | 1eb593599ac3bcf8cfa8568ee0eb5c754fc43652 (patch) | |
tree | 49bb067f6971494b50f57a7d73afda5ca6c30292 /sci-chemistry | |
parent | Fix typo in prefix block by Christoph Junghans <ottxor@gentoo.org>. (diff) | |
download | historical-1eb593599ac3bcf8cfa8568ee0eb5c754fc43652.tar.gz historical-1eb593599ac3bcf8cfa8568ee0eb5c754fc43652.tar.bz2 historical-1eb593599ac3bcf8cfa8568ee0eb5c754fc43652.zip |
sci-chemistry/ball: Drop old, fixes #485830, #505856
Package-Manager: portage-2.2.10/cvs/Linux x86_64
Manifest-Sign-Key: 0xB9D4F231BD1558AB!
Diffstat (limited to 'sci-chemistry')
12 files changed, 26 insertions, 2684 deletions
diff --git a/sci-chemistry/ball/ChangeLog b/sci-chemistry/ball/ChangeLog index 86793ce83543..8ba4f0172e09 100644 --- a/sci-chemistry/ball/ChangeLog +++ b/sci-chemistry/ball/ChangeLog @@ -1,6 +1,16 @@ # ChangeLog for sci-chemistry/ball # Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ball/ChangeLog,v 1.13 2014/03/26 11:20:39 jlec Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ball/ChangeLog,v 1.14 2014/03/26 13:27:44 jlec Exp $ + + 26 Mar 2014; Justin Lecher <jlec@gentoo.org> -ball-1.4.1-r1.ebuild, + -files/ball-1.4.1-Added-MAX_PENALTY-option-to-bond-order-assignment.patch, + -files/ball-1.4.1-Fix-compilation-of-FTPBondOrderStrategy-Fixes-451.patch, + -files/ball-1.4.1-Fix-compilation-of-Python-bindings-with-new-sip-vers.patch, + -files/ball-1.4.1-Fixed-a-bug-in-the-AssignBondOrderProcessor.patch, + -files/ball-1.4.1-Fixed-the-FPT-version-of-bond-order-assignment-2.patch, + -files/ball-1.4.1-gcc-4.7.patch, -files/ball-1.4.1-libsvm.patch, + -files/ball-1.4.1-pthread.patch, -files/ball-1.4.1-python.patch: + Drop old, fixes #485830, #505856 *ball-1.4.2 (26 Mar 2014) diff --git a/sci-chemistry/ball/Manifest b/sci-chemistry/ball/Manifest index ea5e484080aa..69bbd5220545 100644 --- a/sci-chemistry/ball/Manifest +++ b/sci-chemistry/ball/Manifest @@ -1,43 +1,32 @@ -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 -AUX ball-1.4.1-Added-MAX_PENALTY-option-to-bond-order-assignment.patch 40315 SHA256 b3210eb9bc2356b7ae708d07b87c6132cda327311762475a8e9e476360decf43 SHA512 067b227d926d5ee1232f4c9cfe95aa915373f8a741094d2ce4a41527a1d67f03e82be0522b04471a1e6ac34231cdacc05ad164914eee41fe1b0811e594c61396 WHIRLPOOL 24b223a3ca34d343d180d6612e85ca213091f8ff02a636ae32631f84ecebf1785e3f3c419c029c6e22c5328de208a0d55fc0ae3ece0e9b7c465be613446228d8 AUX ball-1.4.1-BondOrder.xml.patch 1675 SHA256 8aaecb9dc1bc729a0446c350b423b47779b8d82a3b00f570a55e4b4f0b7b02c3 SHA512 77e04209bebff5057ad549d1c1d7b638391fb063efb8635a72b46287a4c4975c2d0940267bce9002f3c9dc0f6fab7e21a3099506f57a44e0a325149ee134b2e0 WHIRLPOOL db3ecb2587e607f8257348d9e6dc558e2795807fd8c62e3fecf82bb426b54d18efba510c2b8990dd6fd74781b048be1e69373678977f723c11ed6624ad774d78 -AUX ball-1.4.1-Fix-compilation-of-FTPBondOrderStrategy-Fixes-451.patch 6031 SHA256 0e505b31c64d673b5b211c27c36d2ba4cfb3f05e19efc08967a22b015045cea2 SHA512 69e07399db0c1b9890074c5078c130fa8fbb8eb423b311170f431facb5e79b666c4fed8a3b2e2b5dda5fa7c18cb1750f47f0ae2103150bb55be3f2b56b252799 WHIRLPOOL c1ebae17b75d2e785fd2ff300aa09f59d3ce55a786d982bb63a81795528e142c5fc141e9b01332510c858437eefd0a177a8ff4232eaf2750a5e2232d1c5353c7 -AUX ball-1.4.1-Fix-compilation-of-Python-bindings-with-new-sip-vers.patch 911 SHA256 7a315d132f6bd7a12f3f80fc409cd8274abf47baaada87992c48a96b8b86d865 SHA512 6d5c0170c494f96cd588ace5f034f3b129a795e749acb5bf46f6e9e8beb853649b0fc7a8465e19a116d93ab08be4844bddcee9d86d95cb95b1275f92c9d17c9c WHIRLPOOL 50482396fac4f4ed23487187f03ee6d210254e4b29da18fb43045ba1e31275858469272a11f7e6ab7b5450f07c5b51e383ea169ef542726b8463909c842d7656 -AUX ball-1.4.1-Fixed-a-bug-in-the-AssignBondOrderProcessor.patch 12645 SHA256 ff24458d7b441281c1e90777eddcb0947afd6aa5d46b96718f4778607219a3c1 SHA512 8a373bd9727aa96d01fc0fcdbffaa176ee4d3dd8b262981d68d403315994b41fa57eade834e8f4b788a8bedae8d3fbc34d82e615bf4d919ff1bbeecf21893612 WHIRLPOOL 36d4cb4e25adc4cb65c6d99452751b167109fbd3f0004a95e04ea95698bb6b0315a6e7c2b30f46f10fd78c0962a67f60bd6a9e8b7b0e0a7d0d6cf694c096e25b -AUX ball-1.4.1-Fixed-the-FPT-version-of-bond-order-assignment-2.patch 14754 SHA256 42f9765b0ba33dbcc3420c6714fd612af99c2bb9dfb0cf10abdcad1e11a2e6d9 SHA512 86368511396a534f9a8fc180bc3b4bd8502c4396d0bd585fb99f28a597034652a620bb8c933ed86776060cf090942c26d36b2b9004cf9760267584bb6c12a948 WHIRLPOOL 6325e12a46c90bb3f3348c06d2c8fb13491c09d9e6e405b27ad45609bd24eb9759fb91a0b40a743333c4f55987ca803b963a9cbbce99c96b9ad2ee4edfd87390 -AUX ball-1.4.1-gcc-4.7.patch 22402 SHA256 227d6dd84389350514e1d548c385ddfaeebca764295ca2e79112c3f98e193038 SHA512 f0ea5b5b4e6fb0c7d91095fcbb40fa8ba2840a0c5b823a1d9133af25c592acc08f8441457627b88be1ace36243054828050c3c395eb9cab41baefe558a06a56c WHIRLPOOL ba14a25a7727f952e872947e586344a0b99e80ea05edac233988b0011fa4a7d57e5c6d1f13106ae0a0160fd84fc251c6dbb473338eb02ef049e113da91adc8a3 -AUX ball-1.4.1-libsvm.patch 814 SHA256 01d3e514d11260ca52a7d180219e62bd371ab48787d048321898d6ddf0eee219 SHA512 949e1aeeab71d7453956a1f37841c5fca72fa711e91eadb9293449bd6408a98b840f93c4c360f7ca26eac1b93c48f034d622e49db16613f9d7447488a4189d08 WHIRLPOOL 24e2885ec040aef85a8b85f6ba36a6c84040c659294e987d823f9ce83f94887852b1b88a78d8def41c60d5c950b8d834f8e5408647ce2a4a8990b60fe7f558f8 AUX ball-1.4.1-missing-signed.patch 985 SHA256 5bdeb4613e775e83bf219661f0e494f7556322aac7af3b4dfab593203c6dea7b SHA512 ea50bbceb38e80416e4f49a247816ccaf1318c45676669388f681eca5be525b5ed6d472c1b20afe37d3d95ae5334d90831269c77bce922207b515e8c5a46f20a WHIRLPOOL d6311ba93396e7b4dceb3cdf39d35d736fc8c87f52309d258673f71244903f860199c0cab55cbda81fadf11b82e60361e82c737871e2632c1c5006bdac929b10 AUX ball-1.4.1-multilib.patch 1585 SHA256 ee246df89ca6f1559df359fb6af93462fda9c93fa8a81977f6a5b92190d6ceb5 SHA512 5eebfdce5fba25967c252d0c83f6187079efc55c9481045d6c9e111930e1bb2bed31666b913eb12f46a723aa875559b54f658460efd7be10bbbe4c7cd2982341 WHIRLPOOL f4240a867e4ae503f49bffb986e8bd8a69e1914d6e770e7ae7cb7c03efd23eec3fa095c837e5874785ec4b6bf326c9fec15e16c746f48b89d9afe173f19eb0df -AUX ball-1.4.1-pthread.patch 418 SHA256 be38df8bc184929b0db5c3716113a17ac0033ad53ee631a5881c56c664d23970 SHA512 ce35b9f061534c250789f318a96196d3588d1cf875065a32007c6aeda0815809d42ebea0641c22d074f44125d5236450f887574af3624abc0f7eb6933e38343e WHIRLPOOL ee2152800b79e9f899ba5c194d2e9b7a7fd9503fc45e91d5a5ff75ba478c7694c7f14bca94fda675d04e9e45e7601bd87dfce53c127bf04dd480aa8a994bd0b3 -AUX ball-1.4.1-python.patch 2780 SHA256 3abb2f70a4d8ea930da13cb68e8f57dd705fad42014bd2cc3912362cada48665 SHA512 dd80af7e899bec2a2dff5b837f6b3eaca3f92d5b8b7c1e22cde5a8428b4e3036739212ef0fdea77955e4716d27638772b84d4516e5a15d5937f0d41692be1cdb WHIRLPOOL f82b11dcbc39ae4d434fe6425ff52253ba7c36e719cb103b30a8f01aee0f24699c4759e3c5e006ce168a586f1f012dee25a1b0f1ae23bd2454aac65983e71003 AUX ball-1.4.2-Fix-compilation-of-sipModularWidget.patch 1565 SHA256 3644269518b8444d08de7348f799ba0dedaf644d84c89a55afefdfb64822dfff SHA512 15cc7b8583b5dfcefa152dac0fcf300ad2369f147dc4bb4061fd06586eea403a67442389b2eecca93144b02f73c0eb252794604b87348e63dddcaa03d2775882 WHIRLPOOL e184f70ec3d06e2ef1dc918f0b6e7390b01ce9695ec6bc6cb2ee8f9a637657d18fe74c34ef240d4f721e3d4d74953c9f6d080da7af3d41286d681ef83107e49d AUX ball-1.4.2-PDBFile-Fix-compilation-with-gcc-4.8.patch 1011 SHA256 7231441f971d95ec4845cd899d1d9c3c5c6adedc91156a312c1c76d6d8a096c0 SHA512 f99d0b42b6798b0f97aeb93f9aedf9dfd68c62f948dabab4cc1e7b6a4251b10ec8b4e109936f86456f77b1faecad5eff05bb40200d55490c7f82787b3f6951a1 WHIRLPOOL b54bfc73d6b4f674a7c3830ba142a9e55a13c5775d8174ea24c47759299f00b590df958e9213be892be103064e62f7e095ef543429c2a92884c1468f1660bd9c AUX ball-1.4.2-QT4_EXTRACT_OPTIONS-CMake-macro-changed-in-CMake-2.8.patch 1470 SHA256 be30e8dba38a385d53604c887436bae090aaae46bed97d87b02dd12083f8c19e SHA512 18cd445e4867878f73d74afef1ae74d02bb3a118fdeb379beb2463cef501a79eacfa9c5d487fa2656993f652cc0a7432c7d139a2df101416cc6d7139dc4af034 WHIRLPOOL 5a35d821789ddebe11d45f99866e052d345972d43193888346fbb5cf036288655a92d46c6b8d82291ba4ac6d3f8a57b350a5a71412ecd90b3ea1b4fcca00cbdb DIST BALL-1.4.2.tar.xz 16080664 SHA256 053931b2e050d7d5bceaa21ad3617a1ad0af00f94de56076ce02d544383cbf91 SHA512 c719af4ef2dc1076818d59b72350b704fbffea06bd44737519fb50d88da113ea509333d407f2330aa59bf1c4e6b81adfd3d28e05459f66d7c9707f8d85db7a87 WHIRLPOOL ba7ae340833ea5703d047a9dbc0ce50d9b9dc2b0047a0c6d9f9a17946956c684a09e0860f25c7214a2aa0adee9beb1d01eac38b0ab08259a2934f97cbef91379 -DIST ball-1.4.1.tar.gz 23073541 SHA256 752b4487040d318bdcb1760c96c3293fed065fad7e0dd0efb5c927382e2aeb53 SHA512 2ee1e3b4c9a7e84b581dd8566612f528b5337c2ab55ea57b44c06efa49bba9335604b64c3b618e8c5992d5854f3db77e247da31addf8dbcb6b02275ae4b328cf WHIRLPOOL 7a37b23825e6a7ef286995337ee4870192e89d0f42cc48d715f079431ab95db18aaa792c6cf6e0c3aca6c58e8f870058d87dd87b57931392fd27ecbf00b92c99 -EBUILD ball-1.4.1-r1.ebuild 2310 SHA256 1fce54353afe709dcca3146e314023e80cd9ac2c25feeedf087d99f40ef41112 SHA512 5ede5b995f9405a7254b48b6f52066d7ed70629c1978056cad4a2b3fe8686dc340b0f52a7b5c34460d0ddfc661a4ceb8e1480a267a759d08e7a511446024d0ab WHIRLPOOL 8a749cc5037af6da22c055983bee7ef88f40499399e5641d8a57af1154f6fdf03884c88ec1da84eab2f375b17781f045d126f89e21cb541f337a6639ed875902 EBUILD ball-1.4.2.ebuild 2117 SHA256 a2cf62deb3c8b1cca28926b01f280f8c8a4becb2efe92345b6d2b4ab3654ee9f SHA512 d75aca9381af9b173ff6d3fff36e39681b812a3e1409b848b19b75dcd56a3b2e97889a2654d8303f4e875555aefccef02fc07f93a4e1966c138c5f283e0a8795 WHIRLPOOL e47b4b351a87e492076cf71d3ffc7a194272d064624193d0e1e26d30184a523df10d445e1613b485ebd549a32775a0111085d1a711b6a981c010a1d02de5d268 -MISC ChangeLog 2787 SHA256 caabcffb0eab64b14a680a17fb9e3fe5bdaaaf2daa3102dcb91f3658f2446ef7 SHA512 c61456ad6eb5fac236e750031ad850ea107b1a8226f25e1285643ceed3715d287bbb12a64f4a095702fee5342a4945f28ece292c3eccf3d85bab9d80d214a677 WHIRLPOOL ec6f9ae152b172b88781b0113346915619773076f69605cef0dcb6096eaa3b0e78773f45f692a2f60c71808076c50bc330d7eebe3a4a898b560b9e9665c489f9 +MISC ChangeLog 3408 SHA256 3b38edd427b2760d125f07b969d6ce4858b3a5bfca92213258f49ec5d4828d53 SHA512 cfa3e2493946ef5835795f9732cbc38ba201b69aba78fcb7b710a2742cc145b46acea466923f1151c2d608313d0b5b827f19fb9aec5a7072a13e57861525b1ce WHIRLPOOL 522b2b1281ecd262f0b06cb3155637f82f643fb0b9fe7ca0318b9c5954fe3bd6fe835cc158495a7a9335fb54d0802e88e5b238a5779a5d41b32ab8ea3d5f659d MISC metadata.xml 1469 SHA256 65ccda3e72400f4ddc1a1c502a10e0b0203fb918d56191f1bf704dc998ddf867 SHA512 2f1de58acc3f31aa91e3708beaac6bb8f68c247a7eed3033de35c5de037473abb8ad06a1e6273ee9879fe557ac1af6018eb17512850cee6ea5844c68b78bf82e WHIRLPOOL 5624b3f0767cd981ba58cafd731a173fb3faba519291c85b6387232a45d1654b055677e6f5a40c552fbb8e74a6621ec8816c189f52aa052bf37f934de3465c8e -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) -iQJ8BAEBCgBmBQJTMrgJXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w +iQJ8BAEBCgBmBQJTMtXRXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQyQ0JDQjFGMzBDQ0UxMjFGNENDNDgxMDdC -OUQ0RjIzMUJEMTU1OEFCAAoJELnU8jG9FVirnaYP/iVBewK3IbJJLGB+/7smIgdi -9iQd288/iSLcEulAhK0eCThPRDhj44GyD6fVcMs5lmyUykIe/1Q0/ch/HoddIlcX -8R7x7QExYn9fdIG0Mp8HXdpCzoMHU8LxxSVJzqiP/CkfYeeRomeX4+dvdUnpyoqs -c30CiCChlpvpdV1M8oT07iO5RJ7MXDIbnxDPyYWcTvW65Z9j9QEj2dJbke399Oc0 -hW7W9HhdeRlbUEIu6aEvjrL1bgvKkSUiOHa/RoimTL1q6ceNObpo77fKLfmn7fti -rezbJIwwfCmtyB8wWt8JBVlBRGh6oZmscZckCIxvmCpFk1/FDf+gRaouY4rDRHbB -Aw4ycQiCmfGyuK7456FfRqg1ysVsxqr/Vc2KOVCEH30y7zkvzezGiLCdr3iCqRm2 -2+XLjKAc0twKXbAyawaZXkvbLGg4M/tlnwcZgCNcg8ze5Y87HmHGhdcnF0Da0uEU -TqK3ML0/ZC7Bwcu+W/KvisXNk5s0nF3s4294XA/5h+e7s/4K1y69erxVuv9zf3jJ -F5HhzNWxZDZY54BD2m9ZEVMbjmJyJW/ZHAVY4+ZSaRPFLZD08QbxU6rcoPgyH8UR -8hPNxtYudncpCB0z/gYXcUWZEL2yzFevIFTKBIaKrzoXFRbaB/98WyBjvECALdzI -T6Z8Q4zhtjfJvmetBHSU -=Z7us +OUQ0RjIzMUJEMTU1OEFCAAoJELnU8jG9FVir6hkP/iCz2Enri7LtseG6zPSDSKuX +qzrF26IOHofOvXQssjEUpHmiwEuqyFhz+T9LJjuOO5q7guxEq5VnjzmqugKSZcQ8 +wvQEtQA2pFWif4dhIojTZfGuZXT6BS0hhan8RnDW70w1XPRS+hj9gVxraUo4apFQ +ckWzBvN2bg1rJ4FzaEnT/cnAoAJG1vydld6YjFZ9dayP7QY67f7NfPIJ9ftc8qJI +DsGkzEvGGw5I6IEzObSYMO4j9bSEi/MSCwLyqJRn9LcU3CPHYPffTH5j7x52oy4s +roHcOAHdgDiLiFanY28/iwubfnfwsuWhJXDYRQTYdtH3hLtCLEHRioOtV8fes8kL +Y22joxvEcbNHxO7XPrvDjiaU3u5MKVGUHxqQKoJM3Nb6csm3L9IuBYXsLIFJR1NZ +WbA8CwCxzLD6QqXTNNI4NaK3bEFqszgtdresTDMEvdA9xKQLR9xcv0zhvRxlVPHC +aU44kvw13Eml+h1EUjqdla1JoimzLnSgvUYoU3T999VI4fURaGVEAXldmUKOAjhR +ZthGwa1Muqe1Da+tIs6balafurtYsxnBAoYrbk6nwhr3DpipSiJPqHlsNXfLeSxH +mrSiEsUY0dsO9qLkAy3mQBluiTxkk7TqSomL3xYa1E5Ixnk6LL5b6v1yfgwmPFKw +HSUB8ryU/daLKSSL1eO7 +=8/pS -----END PGP SIGNATURE----- diff --git a/sci-chemistry/ball/ball-1.4.1-r1.ebuild b/sci-chemistry/ball/ball-1.4.1-r1.ebuild deleted file mode 100644 index ba23080fc497..000000000000 --- a/sci-chemistry/ball/ball-1.4.1-r1.ebuild +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright 1999-2014 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/ball/ball-1.4.1-r1.ebuild,v 1.7 2014/03/26 11:20:39 jlec Exp $ - -EAPI=5 - -PYTHON_COMPAT=( python{2_6,2_7} ) - -inherit cmake-utils python-single-r1 - -DESCRIPTION="Biochemical Algorithms Library" -HOMEPAGE="http://www.ball-project.org/" -SRC_URI="http://dev.gentoo.org/~jlec/distfiles/${P}.tar.gz" - -SLOT="0" -LICENSE="LGPL-2 GPL-3" -KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" -IUSE="cuda mpi +python sql test +threads +webkit" - -REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )" - -RDEPEND=" - dev-cpp/eigen:3 - dev-libs/boost - dev-qt/qtcore:4 - dev-qt/qtgui:4 - dev-qt/qtopengl:4 - dev-qt/qttest:4 - dev-qt/qtwebkit:4 - media-libs/glew - sci-libs/fftw:3.0[threads?] - sci-libs/gsl - sci-libs/libsvm - sci-mathematics/lpsolve - virtual/opengl - x11-libs/libX11 - cuda? ( dev-util/nvidia-cuda-toolkit ) - mpi? ( virtual/mpi ) - python? ( ${PYTHON_DEPS} ) - sql? ( dev-qt/qtsql:4 ) - webkit? ( dev-qt/qtwebkit:4 )" -DEPEND="${RDEPEND} - dev-python/sip - sys-devel/bison - virtual/yacc" - -S="${WORKDIR}"/BALL - -PATCHES=( - "${FILESDIR}"/${P}-multilib.patch - "${FILESDIR}"/${P}-libsvm.patch - "${FILESDIR}"/${P}-pthread.patch - "${FILESDIR}"/${P}-python.patch - "${FILESDIR}"/${P}-missing-signed.patch - "${FILESDIR}"/${P}-gcc-4.7.patch - "${FILESDIR}"/${P}-BondOrder.xml.patch - "${FILESDIR}"/${P}-Fixed-the-FPT-version-of-bond-order-assignment-2.patch - "${FILESDIR}"/${P}-Added-MAX_PENALTY-option-to-bond-order-assignment.patch - "${FILESDIR}"/${P}-Fixed-a-bug-in-the-AssignBondOrderProcessor.patch - "${FILESDIR}"/${P}-Fix-compilation-of-Python-bindings-with-new-sip-vers.patch - ) - -pkg_setup() { - use python && python-single-r1_pkg_setup -} - -src_configure() { - local mycmakeargs=( - $(cmake-utils_use_use threads FFTW_THREADS) - $(cmake-utils_use cuda MT_ENABLE_CUDA) - $(cmake-utils_use mpi MT_ENABLE_MPI) - $(cmake-utils_use sql BALL_HAS_QTSQL) - $(cmake-utils_use_use webkit USE_QTWEBKIT) - $(cmake-utils_use python BALL_PYTHON_SUPPORT) - ) - cmake-utils_src_configure - local i - for i in "${S}"/data/*; do - ln -sf "${i}" "${BUILD_DIR}"/source/TEST/ || die - ln -sf "${i}" "${S}"/source/TEST/ || die - done -} - -src_compile() { - cmake-utils_src_compile - use test && cmake-utils_src_make build_tests -} diff --git a/sci-chemistry/ball/files/ball-1.4.1-Added-MAX_PENALTY-option-to-bond-order-assignment.patch b/sci-chemistry/ball/files/ball-1.4.1-Added-MAX_PENALTY-option-to-bond-order-assignment.patch deleted file mode 100644 index 4af96b783cdb..000000000000 --- a/sci-chemistry/ball/files/ball-1.4.1-Added-MAX_PENALTY-option-to-bond-order-assignment.patch +++ /dev/null @@ -1,975 +0,0 @@ -From: Anna Dehof <anne@bioinf.uni-sb.de> -Date: Mon, 26 Mar 2012 19:11:39 +0200 -Subject: Added MAX_PENALTY option to bond order assignment - ---- - include/BALL/DATATYPE/GRAPH/treeWidth.h | 28 +-- - .../STRUCTURE/BONDORDERS/FPTBondOrderStrategy.h | 16 +- - include/BALL/STRUCTURE/assignBondOrderProcessor.h | 30 ++- - source/APPLICATIONS/UTILITIES/assign_bond_orders.C | 34 +++- - source/DATATYPE/GRAPH/treeWidth.C | 2 +- - source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C | 199 +++++++++----------- - source/STRUCTURE/assignBondOrderProcessor.C | 44 +++-- - 7 files changed, 186 insertions(+), 167 deletions(-) - -diff --git a/include/BALL/DATATYPE/GRAPH/treeWidth.h b/include/BALL/DATATYPE/GRAPH/treeWidth.h -index f7687ef..53ecffc 100644 ---- a/include/BALL/DATATYPE/GRAPH/treeWidth.h -+++ b/include/BALL/DATATYPE/GRAPH/treeWidth.h -@@ -100,14 +100,14 @@ namespace BALL - - typedef boost::adjacency_list<boost::vecS, boost::vecS, boost::directedS, - boost::property<boost::vertex_bag_content_t, std::set<OriginalVertexType>, -- boost::property<boost::vertex_bag_special_t, OriginalVertexType, -- boost::property<boost::vertex_bag_type_t, int> > >, -+ boost::property<boost::vertex_bag_special_t, OriginalVertexType, -+ boost::property<boost::vertex_bag_type_t, int> > >, - boost::no_property> TreeDecompositionGraph; - - typedef typename boost::graph_traits<TreeDecompositionGraph>::vertex_descriptor TreeDecompositionBag; - - typedef boost::iterator_property_map<typename std::vector<TreeDecompositionBag>::iterator, -- typename boost::property_map<TreeDecompositionGraph, boost::vertex_index_t>::type> -+ typename boost::property_map<TreeDecompositionGraph, boost::vertex_index_t>::type> - TreeDecompositionParentMap; - typedef boost::graph_as_tree<TreeDecompositionGraph, TreeDecompositionParentMap> TreeDecomposition; - -@@ -131,7 +131,7 @@ namespace BALL - class ComponentFilter_ - { - public: -- ComponentFilter_(ComponentMap cm, Position i) -+ ComponentFilter_(ComponentMap cm, Position i) - : cm_(cm), - component_(i) - { } -@@ -144,7 +144,7 @@ namespace BALL - - protected: - ComponentMap cm_; -- Position component_; -+ Position component_; - }; - - /** PropertyWriter for graphviz output. -@@ -167,7 +167,7 @@ namespace BALL - // TODO: would UndirectedGraph suffice here? - MolecularGraph const* input_; - -- std::vector<boost::shared_ptr<EditableGraph> > components_; -+ std::vector<boost::shared_ptr<EditableGraph> > components_; - - std::vector<boost::shared_ptr<TreeDecomposition> > nice_tree_decompositions_; - std::vector<boost::shared_ptr<TreeDecompositionGraph> > nice_tree_decomposition_graphs_; -@@ -201,7 +201,7 @@ namespace BALL - * @tparam Reducer the reducer which removes a vertex from the graph to reduce it's size - */ - template<class Criterion, class Reducer> -- class GeneralLowerBoundAlgorithm -+ class GeneralLowerBoundAlgorithm - : public UnaryFunctor<UndirectedGraph, Size> - { - public: -@@ -284,7 +284,7 @@ namespace BALL - * @throw BALL::GRAPH::UnconnectedGraphException if called on unconnected graphs - */ - template<class Criterion> -- class GreedyX -+ class GreedyX - : public UnaryFunctor<UndirectedGraph, typename std::pair< - std::vector<boost::graph_traits<typename UndirectedGraph::vertex_descriptor> >, Size> > - { -@@ -296,7 +296,7 @@ namespace BALL - * A criterium for GreedyFillIn which search for a vertex with - * minimum number of additional edges after eliminating - */ -- struct FillInHeuristic -+ struct FillInHeuristic - { - VertexType& operator() (UndirectedGraph& graph); - -@@ -323,8 +323,8 @@ namespace BALL - */ - enum SIMPLICIAL_TYPE - { -- NOT_SIMPLICIAL, -- ALMOST_SIMPLICIAL, -+ NOT_SIMPLICIAL, -+ ALMOST_SIMPLICIAL, - IS_SIMPLICIAL - }; - -@@ -484,7 +484,7 @@ namespace BALL - TreeDecompositionBag buildJoin_(TreeDecompositionBag node, TreeDecompositionBag left, - TreeDecompositionBag right, bool do_forget); - -- TreeDecompositionBag buildSingle_(TreeDecompositionBag node, int node_type, -+ TreeDecompositionBag buildSingle_(TreeDecompositionBag node, int node_type, - TreeDecompositionBag child); - - TreeDecompositionBag buildLinkage_(TreeDecompositionBag node, TreeDecompositionBag child); -@@ -492,8 +492,8 @@ namespace BALL - TreeDecompositionBag linkWithIntroduceNodes_(TreeDecompositionContent parent_set, TreeDecompositionBag child); - TreeDecompositionBag linkWithForgetNodes_ (TreeDecompositionContent parent_set, TreeDecompositionBag child); - -- TreeDecompositionBag branch_(TreeDecompositionBag node, int node_type, -- typename std::vector<TreeDecompositionBag>::iterator begin, -+ TreeDecompositionBag branch_(TreeDecompositionBag node, int node_type, -+ typename std::vector<TreeDecompositionBag>::iterator begin, - typename std::vector<TreeDecompositionBag>::iterator end); - - boost::shared_ptr<TreeDecomposition> tree_; -diff --git a/include/BALL/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.h b/include/BALL/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.h -index 55cef31..ba129b0 100644 ---- a/include/BALL/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.h -+++ b/include/BALL/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.h -@@ -1117,6 +1117,11 @@ namespace BALL - Size max_heap_size_; - - /** -+ * The number of solutions produced so far. -+ */ -+ Size num_computed_solutions_; -+ -+ /** - * current upperbound. This algorithm will just iterate solutions which are better than this upperbound; - */ - Penalty upper_bound_; -@@ -1248,14 +1253,6 @@ namespace BALL - Size solution_number, Penalty upper_bound = infinite_penalty); - - /** -- * Construct a DPBackTrackingCombiner with the given FPTBondOrder and the number of solutions -- * @param bondAssignments vector with the bond assignments. Call #compute before constructing -- * @param solutionNumber the maximum number of solutions you want to backtrack -- */ -- DPBackTrackingCombiner_(std::vector<FPTBondOrderAssignment_>& bond_assignments, -- Size solution_number, Penalty upper_bound = infinite_penalty); -- -- /** - * Copy constructor - */ - DPBackTrackingCombiner_(DPBackTrackingCombiner_ const& copy); -@@ -1407,9 +1404,6 @@ namespace BALL - */ - std::vector<std::vector<int> > const* atom_to_block_; - -- /// upper bound on the penalty values for which we compute solutions -- Penalty upper_bound_; -- - /** - * A shared pointer to the computing data, so that you can copy this instance without copying - * all the computing data -diff --git a/include/BALL/STRUCTURE/assignBondOrderProcessor.h b/include/BALL/STRUCTURE/assignBondOrderProcessor.h -index f8065d6..0d14af8 100644 ---- a/include/BALL/STRUCTURE/assignBondOrderProcessor.h -+++ b/include/BALL/STRUCTURE/assignBondOrderProcessor.h -@@ -183,17 +183,35 @@ namespace BALL - - /** the maximal number of solutions to compute - * -- * If set to zero all optimal solutions will be computed. -+ * If set to zero all optimal or all up to \link MAX_PENALTY MAX_PENALTY \endlink -+ * solutions will be computed. - * -- * @see Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS -+ * @see Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS -+ * @see Option::MAX_PENALTY - */ - static const char* MAX_NUMBER_OF_SOLUTIONS; - -- /** compute also non-optimal solutions but not more than -- * \link MAX_NUMBER_OF_SOLUTIONS MAX_NUMBER_OF_SOLUTIONS \endlink solutions. -+ /** the maximal penalty score allowed -+ * -+ * This option respects option \link MAX_NUMBER_OF_SOLUTIONS MAX_NUMBER_OF_SOLUTIONS \endlink -+ * if specified. - * -+ * If set to -1 this option will be ignored. -+ * -+ * @see Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS - * @see Option::MAX_NUMBER_OF_SOLUTIONS - */ -+ static const char* MAX_PENALTY; -+ -+ /** compute also sub-optimal solutions but not more than -+ * \link MAX_NUMBER_OF_SOLUTIONS MAX_NUMBER_OF_SOLUTIONS \endlink solutions. -+ * -+ * Alternatively \link Option::MAX_PENALTY Option::MAX_PENALTY \endlink -+ * allows to specify a maximal penalty. -+ * -+ * @see Option::MAX_NUMBER_OF_SOLUTIONS -+ * @see Option::MAX_PENALTY -+ */ - static const char* COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS; - - /** weighting of bond length penalties wrt valence penalties. -@@ -227,6 +245,7 @@ namespace BALL - static const String INIFile; - static const int MAX_BOND_ORDER; - static const int MAX_NUMBER_OF_SOLUTIONS; -+ static const int MAX_PENALTY; - static const bool COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS; - static const float BOND_LENGTH_WEIGHTING; - static const bool APPLY_FIRST_SOLUTION; -@@ -716,6 +735,9 @@ namespace BALL - // the max number of solutions to compute - int max_number_of_solutions_; - -+ // the max penalty score -+ int max_penalty_; -+ - // flag to indicate, whether also non-optimal solutions should be computed - bool compute_also_non_optimal_solutions_; - -diff --git a/source/APPLICATIONS/UTILITIES/assign_bond_orders.C b/source/APPLICATIONS/UTILITIES/assign_bond_orders.C -index cefef9b..7053baa 100644 ---- a/source/APPLICATIONS/UTILITIES/assign_bond_orders.C -+++ b/source/APPLICATIONS/UTILITIES/assign_bond_orders.C -@@ -16,10 +16,10 @@ using namespace BALL; - - int main(int argc, char** argv) - { -- if ((argc < 3) || (argc > 4)) -+ if (argc < 3) - // if (argc != 3) - { -- Log << "Usage:" << argv[0] << " <Molecule infile> <Molecule outfile> [num_sol]" << endl; -+ Log << "Usage:" << argv[0] << " <Molecule infile> <Molecule outfile> [--num-sol=n] [--strategy=(fpt|a_star|ilp)] [--max-penalty=m]" << endl; - return 1; - } - -@@ -49,24 +49,40 @@ int main(int argc, char** argv) - // set the options: - // - // the solution strategy (A*, ILP or FPT) -- abop.options.set(AssignBondOrderProcessor::Option::ALGORITHM, AssignBondOrderProcessor::Algorithm::A_STAR); -+ abop.options.set(AssignBondOrderProcessor::Option::ALGORITHM, AssignBondOrderProcessor::Algorithm::FPT); - - // specify the inifile with the atomic valence penalties - abop.options.set(AssignBondOrderProcessor::Option::INIFile, AssignBondOrderProcessor::Default::INIFile); - - // options for considering bond length as well -- abop.options.setReal(AssignBondOrderProcessor::Option::BOND_LENGTH_WEIGHTING, 0); -- abop.options.setReal(AssignBondOrderProcessor::Option::USE_FINE_PENALTY, true); -+// abop.options.setReal(AssignBondOrderProcessor::Option::BOND_LENGTH_WEIGHTING, 0); -+// abop.options.setReal(AssignBondOrderProcessor::Option::USE_FINE_PENALTY, true); - - // the combination of the following two options causes the computation of all optimal solutions - abop.options.setInteger(AssignBondOrderProcessor::Option::MAX_NUMBER_OF_SOLUTIONS, 0); - abop.options.setBool(AssignBondOrderProcessor::Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS, false); - -- if (argc == 4) -+ if (argc > 3) - { -- Log << " with compute fixed number (" << argv[3] << ") solutions" << endl; -- abop.options.setInteger(AssignBondOrderProcessor::Option::MAX_NUMBER_OF_SOLUTIONS, String(argv[3]).toInt()); -- abop.options.setBool(AssignBondOrderProcessor::Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS, true); -+ for (Index i=3; i<argc; ++i) -+ { -+ if (String(argv[i]).hasPrefix("--strategy")) -+ { -+ abop.options.set(AssignBondOrderProcessor::Option::ALGORITHM, String(argv[i]).getField(1, "=")); -+ } -+ else if (String(argv[i]).hasPrefix("--num-sol")) -+ { -+ Log << " with compute fixed number (" << argv[i] << ") solutions" << endl; -+ abop.options.setInteger(AssignBondOrderProcessor::Option::MAX_NUMBER_OF_SOLUTIONS, String(argv[i]).getField(1, "=").toInt()); -+ abop.options.setBool(AssignBondOrderProcessor::Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS, true); -+ } -+ else if (String(argv[i]).hasPrefix("--max-penalty")) -+ { -+ abop.options.setInteger(AssignBondOrderProcessor::Option::MAX_PENALTY, String(argv[i]).getField(1, "=").toInt()); -+ abop.options.setBool(AssignBondOrderProcessor::Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS, true); -+ Log << " with maximum penalty (" << abop.options.getInteger(AssignBondOrderProcessor::Option::MAX_PENALTY) << ")" << endl; -+ } -+ } - } - - // define input and output properties -diff --git a/source/DATATYPE/GRAPH/treeWidth.C b/source/DATATYPE/GRAPH/treeWidth.C -index 7485305..cd0a879 100644 ---- a/source/DATATYPE/GRAPH/treeWidth.C -+++ b/source/DATATYPE/GRAPH/treeWidth.C -@@ -12,7 +12,7 @@ namespace BALL - // find all vertices in the current bag - TreeDecompositionContent content = boost::get(boost::vertex_bag_content, *td_, v); - -- for (typename TreeDecompositionContent::const_iterator tdc_it = content.begin(); tdc_it != content.end(); ++tdc_it) -+ for (TreeDecompositionContent::const_iterator tdc_it = content.begin(); tdc_it != content.end(); ++tdc_it) - { - TreeWidth<MolecularGraph>::OriginalVertexType ov = *tdc_it; - Atom const* atom = boost::get(boost::vertex_atom_ptr, *original_graph_, ov); -diff --git a/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C b/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -index 42040e5..107823e 100644 ---- a/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -+++ b/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -@@ -12,10 +12,6 @@ namespace BALL - const FPTBondOrderStrategy::Penalty FPTBondOrderStrategy::infinite_penalty = 1e5; - const FPTBondOrderStrategy::Valence FPTBondOrderStrategy::max_valence = 8; - -- String FPTBondOrderStrategy::Option::UPPER_PENALTY_BOUND = "upper_penalty_bound"; -- -- FPTBondOrderStrategy::Penalty FPTBondOrderStrategy::Default::UPPER_PENALTY_BOUND = infinite_penalty; -- - FPTBondOrderStrategy::FPTBondOrderStrategy(AssignBondOrderProcessor* parent) - : BondOrderAssignmentStrategy(parent) - { -@@ -33,15 +29,11 @@ namespace BALL - - bool FPTBondOrderStrategy::readOptions(const Options& options) - { -- upper_bound_ = options.get(Option::UPPER_PENALTY_BOUND).toFloat(); -- - return true; - } - - void FPTBondOrderStrategy::setDefaultOptions() - { -- abop->options.setDefault(FPTBondOrderStrategy::Option::UPPER_PENALTY_BOUND, -- FPTBondOrderStrategy::Default::UPPER_PENALTY_BOUND); - } - - void FPTBondOrderStrategy::init() -@@ -64,16 +56,22 @@ namespace BALL - std::vector<boost::shared_ptr<TreeDecomposition> > & ntds = computing_data_->tw->getNiceTreeDecompositions(); - std::vector<FPTBondOrderAssignment_*>& bond_assignments = computing_data_->bond_assignments; - -+ int max_penalty = abop->max_penalty_; -+ if (max_penalty == -1) -+ max_penalty = infinite_penalty; -+ else -+ max_penalty += 1; -+ - bond_assignments.reserve(ntds.size()); - for (Position i = 0; i < ntds.size(); ++i) - { -- bond_assignments.push_back(new FPTBondOrderAssignment_(*this, ntds[i], upper_bound_)); -- bond_assignments[i]->compute(); -+ bond_assignments.push_back(new FPTBondOrderAssignment_(*this, ntds[i], max_penalty)); -+ Penalty result = bond_assignments[i]->compute(); - } - - // initialize backtracking - combiner_ = boost::shared_ptr<DPBackTrackingCombiner_>( -- new DPBackTrackingCombiner_(bond_assignments, abop->max_number_of_solutions_, upper_bound_)); -+ new DPBackTrackingCombiner_(bond_assignments, abop->max_number_of_solutions_, max_penalty)); - } - - boost::shared_ptr<BondOrderAssignment> FPTBondOrderStrategy::computeNextSolution() -@@ -144,7 +142,7 @@ namespace BALL - int penalty = (*penalties_)[start_index + position]; - - return (penalty < 0) ? infinite_penalty : static_cast<float>(penalty); -- } -+ } - else - { - return infinite_penalty; -@@ -155,20 +153,20 @@ namespace BALL - //* DPConfig_ * - //***************************************************************************************************** - -- FPTBondOrderStrategy::DPConfig_::DPConfig_() -- : consumed_valences(0), -+ FPTBondOrderStrategy::DPConfig_::DPConfig_() -+ : consumed_valences(0), - bond_assignments(0) - { - } - -- FPTBondOrderStrategy::DPConfig_::DPConfig_(Size atoms, Size bonds) -- : consumed_valences(atoms, 0), -+ FPTBondOrderStrategy::DPConfig_::DPConfig_(Size atoms, Size bonds) -+ : consumed_valences(atoms, 0), - bond_assignments(bonds, 0) - { - } - -- FPTBondOrderStrategy::DPConfig_::DPConfig_(std::vector<Valence> const& v, std::vector<BondOrder> const& bo) -- : consumed_valences(v), -+ FPTBondOrderStrategy::DPConfig_::DPConfig_(std::vector<Valence> const& v, std::vector<BondOrder> const& bo) -+ : consumed_valences(v), - bond_assignments(bo) - { - } -@@ -258,12 +256,12 @@ namespace BALL - //* DPTable_ * - //***************************************************************************************************** - -- FPTBondOrderStrategy::DPTable_::DPTable_() -+ FPTBondOrderStrategy::DPTable_::DPTable_() - : table() - { - } - -- FPTBondOrderStrategy::DPTable_::DPTable_(DPTable_ const& dptab) -+ FPTBondOrderStrategy::DPTable_::DPTable_(DPTable_ const& dptab) - : table(dptab.table) - { - } -@@ -345,7 +343,7 @@ namespace BALL - if (insertion.second) - { - return true; -- } -+ } - else - { - if (insertion.first->second > penalty) -@@ -353,7 +351,7 @@ namespace BALL - insertion.first->second = penalty; - - return true; -- } -+ } - else - { - return false; -@@ -365,14 +363,14 @@ namespace BALL - //* AdditionalBagProperties_ * - //***************************************************************************************************** - -- FPTBondOrderStrategy::AdditionalBagProperties_::AdditionalBagProperties_() -- : bonds(), -- table(new DPTable_()) -+ FPTBondOrderStrategy::AdditionalBagProperties_::AdditionalBagProperties_() -+ : bonds(), -+ table(new DPTable_()) - { - } - -- FPTBondOrderStrategy::AdditionalBagProperties_::AdditionalBagProperties_(AdditionalBagProperties_ const& copy) -- : bonds(copy.bonds), -+ FPTBondOrderStrategy::AdditionalBagProperties_::AdditionalBagProperties_(AdditionalBagProperties_ const& copy) -+ : bonds(copy.bonds), - table(new DPTable_(*copy.table)) - { - } -@@ -384,7 +382,7 @@ namespace BALL - - FPTBondOrderStrategy::AdditionalBagProperties_& FPTBondOrderStrategy::AdditionalBagProperties_::operator=(AdditionalBagProperties_ const& copy) - { -- if (© != this) -+ if (© != this) - { - bonds = copy.bonds; - table = new DPTable_(*copy.table); -@@ -447,7 +445,7 @@ namespace BALL - { - throw Exception::NullPointer(__FILE__, __LINE__); - } -- case TreeWidth<MolecularGraph>::LEAF_BAG: -+ case TreeWidth<MolecularGraph>::LEAF_BAG: - break; - case TreeWidth<MolecularGraph>::END_BAG: - if (boost::num_vertices(*molecule_) == 0 && (bag == root(*ntd_))) -@@ -455,7 +453,7 @@ namespace BALL - // empty molecule -> empty table - bag_properties.table->insert(DPConfig_(), 0); - return bag_properties.table; -- } -+ } - else - { - // else nice tree decomposition is damaged -@@ -603,7 +601,7 @@ namespace BALL - return bonds; - } - -- void FPTBondOrderStrategy::FPTBondOrderAssignment_::computeIntroduceBag(TreeDecompositionBag& bag, DPTable_& child, -+ void FPTBondOrderStrategy::FPTBondOrderAssignment_::computeIntroduceBag(TreeDecompositionBag& bag, DPTable_& child, - AdditionalBagProperties_& property) - { - typedef TreeWidth<MolecularGraph>::TreeDecompositionContent TreeDecompositionContent; -@@ -614,7 +612,7 @@ namespace BALL - - TreeDecompositionContent vertices = boost::get(boost::vertex_bag_content, *ntd_, bag); - Size num_valences = vertices.size(); -- -+ - std::vector<MolecularGraphTraits::EdgeType>& bonds = property.bonds; - Size num_bonds = bonds.size(); - -@@ -654,7 +652,7 @@ namespace BALL - { - // remember the indizes of the new introduced bonds - indices.push_back(vindex); -- } -+ } - else - { - conf.bond_assignments[vindex] = child_entry.first.get().bond_assignments[cindex++]; -@@ -662,7 +660,7 @@ namespace BALL - } - - // if there are any introduced bonds we have to fill them with each possible value -- if (indices.size() > 0) -+ if (indices.size() > 0) - { - std::vector<int> bond_values(indices.size()); - -@@ -685,7 +683,7 @@ namespace BALL - ++current_index; - } - } -- } -+ } - else - { - table.insert(conf, child_entry.second); -@@ -768,7 +766,7 @@ namespace BALL - return parent_->getPenaltyFor_(forgotten_vertex, forgotten_valence) + child_row.second; - } - -- void FPTBondOrderStrategy::FPTBondOrderAssignment_::computeForgetBag(TreeDecompositionBag& bag, DPTable_& child, -+ void FPTBondOrderStrategy::FPTBondOrderAssignment_::computeForgetBag(TreeDecompositionBag& bag, DPTable_& child, - AdditionalBagProperties_& property) - { - typedef TreeWidth<MolecularGraph>::TreeDecompositionContent TreeDecompositionContent; -@@ -795,7 +793,7 @@ namespace BALL - } - } - -- void FPTBondOrderStrategy::FPTBondOrderAssignment_::computeRootBag(TreeDecompositionBag& bag, -+ void FPTBondOrderStrategy::FPTBondOrderAssignment_::computeRootBag(TreeDecompositionBag& bag, - DPTable_& child, AdditionalBagProperties_& bag_properties) - { - DPConfig_ empty(0, 0); -@@ -816,7 +814,8 @@ namespace BALL - } - - void FPTBondOrderStrategy::FPTBondOrderAssignment_::computeJoinBag(TreeDecompositionBag& bag, -- DPTable_& left_child, DPTable_& right_child, AdditionalBagProperties_& property) -+ DPTable_& left_child, DPTable_& right_child, -+ AdditionalBagProperties_& property) - { - typedef TreeWidth<MolecularGraph>::TreeDecompositionContent TreeDecompositionContent; - -@@ -1268,22 +1267,23 @@ namespace BALL - //* DPBackTracking_ * - //***************************************************************************************************** - -- FPTBondOrderStrategy::DPBackTracking_::DPBackTracking_(FPTBondOrderAssignment_& bond_assignment, Size max_num_solutions, -- std::vector<MolecularGraphTraits::EdgeType> const& bonds, Penalty upper_bound) -- : bond_assignment_(&bond_assignment), -- current_state_(NULL), -- queue_(), -- max_num_solutions_(max_num_solutions), -+ FPTBondOrderStrategy::DPBackTracking_::DPBackTracking_(FPTBondOrderAssignment_& bond_assignment, Size max_num_solutions, -+ std::vector<MolecularGraphTraits::EdgeType> const& bonds, Penalty upper_bound) -+ : bond_assignment_(&bond_assignment), -+ current_state_(NULL), -+ queue_(), -+ max_num_solutions_(max_num_solutions), - bonds_(&bonds), -- bags_(boost::shared_ptr<std::vector<TreeDecompositionBag> >(new std::vector<TreeDecompositionBag>)), -- max_heap_size_(max_num_solutions), -+ bags_(boost::shared_ptr<std::vector<TreeDecompositionBag> >(new std::vector<TreeDecompositionBag>)), -+ max_heap_size_(1e6), -+ num_computed_solutions_(0), - upper_bound_(upper_bound) - { - // order bags in preorder - if (bond_assignment.ntd_ == NULL) - { - throw Exception::NullPointer(__FILE__, __LINE__); -- } -+ } - else - { - bags_->reserve(boost::num_vertices(bond_assignment.ntd_->_g)); -@@ -1303,14 +1303,15 @@ namespace BALL - } - } - -- FPTBondOrderStrategy::DPBackTracking_::DPBackTracking_(DPBackTracking_ const& copy) -- : bond_assignment_(copy.bond_assignment_), -- current_state_(NULL), -+ FPTBondOrderStrategy::DPBackTracking_::DPBackTracking_(DPBackTracking_ const& copy) -+ : bond_assignment_(copy.bond_assignment_), -+ current_state_(NULL), - queue_(), -- max_num_solutions_(copy.max_num_solutions_), -- bonds_(copy.bonds_), -- bags_(copy.bags_), -+ max_num_solutions_(copy.max_num_solutions_), -+ bonds_(copy.bonds_), -+ bags_(copy.bags_), - max_heap_size_(copy.max_heap_size_), -+ num_computed_solutions_(copy.num_computed_solutions_), - upper_bound_(copy.upper_bound_) - { - if (copy.current_state_ != NULL) -@@ -1345,6 +1346,7 @@ namespace BALL - bonds_ = copy.bonds_; - bags_ = copy.bags_; - max_heap_size_ = copy.max_heap_size_; -+ num_computed_solutions_ = copy.num_computed_solutions_; - upper_bound_ = copy.upper_bound_; - } - -@@ -1365,6 +1367,7 @@ namespace BALL - - std::vector<BackTrackingState_*> copy(queue_.begin(), queue_.end()); - queue_.clear(); -+ num_computed_solutions_ = 0; - - for (std::vector<BackTrackingState_*>::iterator iter = copy.begin(); iter != copy.end(); ++iter) - { -@@ -1372,7 +1375,7 @@ namespace BALL - } - } - -- bool FPTBondOrderStrategy::DPBackTracking_::StateComparator_::operator() (BackTrackingState_ const * left, -+ bool FPTBondOrderStrategy::DPBackTracking_::StateComparator_::operator() (BackTrackingState_ const * left, - BackTrackingState_ const * right) const - { - return *left < *right; -@@ -1397,7 +1400,7 @@ namespace BALL - if (order < properties.size()) - { - return properties[order]; -- } -+ } - else - { - throw Exception::IndexOverflow(__FILE__, __LINE__, static_cast<Index>(order), properties.size()); -@@ -1426,12 +1429,12 @@ namespace BALL - - bool FPTBondOrderStrategy::DPBackTracking_::hasMoreSolutions() const - { -- return (!queue_.empty() && (max_heap_size_ > 0)); -+ return (!queue_.empty() && (!max_num_solutions_ || (num_computed_solutions_ <= max_num_solutions_))); - } - - void FPTBondOrderStrategy::DPBackTracking_::nextSolution() - { -- if (queue_.empty() || max_heap_size_ == 0) -+ if (queue_.empty() || max_heap_size_ == 0 || ((max_num_solutions_ > 0) && (num_computed_solutions_ > max_num_solutions_))) - { - throw Exception::OutOfRange(__FILE__, __LINE__); - } -@@ -1444,7 +1447,7 @@ namespace BALL - std::multiset<BackTrackingState_*, StateComparator_>::iterator first = queue_.begin(); - current_state_ = *first; - queue_.erase(first); -- --max_heap_size_; -+ ++num_computed_solutions_; - - TreeDecomposition& tree = *bond_assignment_->ntd_; - -@@ -1469,7 +1472,7 @@ namespace BALL - { - TreeDecomposition::children_iterator c_2 = c_i; - ++c_2; -- visitJoin(*current_state_, bag, getTable(boost::get(boost::vertex_index, tree, *c_i)), -+ visitJoin(*current_state_, bag, getTable(boost::get(boost::vertex_index, tree, *c_i)), - getTable(boost::get(boost::vertex_index, tree, *c_2))); - break; - } -@@ -1769,7 +1772,7 @@ namespace BALL - if (d < bonds_->size()) - { - return d; -- } -+ } - else - { - throw Exception::IndexOverflow(__FILE__, __LINE__, static_cast<Index>(d), bonds_->size()); -@@ -1795,7 +1798,7 @@ namespace BALL - - bool FPTBondOrderStrategy::DPBackTracking_::isSolutionNeeded(Penalty penalty) - { -- if (max_heap_size_ == 0) {return false;} -+ if (max_heap_size_ == 0 || ((max_num_solutions_ > 0) && (num_computed_solutions_ > max_num_solutions_))) {return false;} - if (queue_.size() >= max_heap_size_) {return Maths::isLess(penalty, upper_bound_);} - return Maths::isLessOrEqual(penalty, upper_bound_); - } -@@ -1846,7 +1849,7 @@ namespace BALL - if (queue_.empty() || max_heap_size_ == 0) - { - return FPTBondOrderStrategy::infinite_penalty; -- } -+ } - else - { - return (*queue_.begin())->assignment.penalty; -@@ -1857,25 +1860,25 @@ namespace BALL - //* DPBackTrackingCombiner_ * - //***************************************************************************************************** - -- FPTBondOrderStrategy::DPBackTrackingCombiner_::DPBackTrackingCombiner_(DPBackTrackingCombiner_ const& copy) -- : backtrackers_(copy.deepCopyOfBacktrackers_()), -+ FPTBondOrderStrategy::DPBackTrackingCombiner_::DPBackTrackingCombiner_(DPBackTrackingCombiner_ const& copy) -+ : backtrackers_(copy.deepCopyOfBacktrackers_()), - priority_queue_(copy.priority_queue_), -- component_solutions_(copy.component_solutions_), -+ component_solutions_(copy.component_solutions_), - assignment_(copy.assignment_), -- solution_number_(copy.solution_number_), -- optimum_(copy.optimum_), -+ solution_number_(copy.solution_number_), -+ optimum_(copy.optimum_), - upper_bound_(copy.upper_bound_) - { - } - -- FPTBondOrderStrategy::DPBackTrackingCombiner_::DPBackTrackingCombiner_(std::vector<FPTBondOrderAssignment_*>& bond_assignments, -- Size solution_number, Penalty upper_bound) -- : backtrackers_(), -- priority_queue_(), -+ FPTBondOrderStrategy::DPBackTrackingCombiner_::DPBackTrackingCombiner_(std::vector<FPTBondOrderAssignment_*>& bond_assignments, -+ Size solution_number, Penalty upper_bound) -+ : backtrackers_(), -+ priority_queue_(), - component_solutions_(bond_assignments.size()), -- assignment_(), -- solution_number_(solution_number), -- optimum_(FPTBondOrderStrategy::infinite_penalty), -+ assignment_(), -+ solution_number_(solution_number), -+ optimum_(FPTBondOrderStrategy::infinite_penalty), - upper_bound_(upper_bound) - { - if (bond_assignments.empty()) -@@ -1897,7 +1900,7 @@ namespace BALL - FPTBondOrderStrategy::EdgeComparator_ ec(&graph); - std::sort(sorted_edges.begin(), sorted_edges.end(), ec); - -- for (std::vector<FPTBondOrderAssignment_*>::const_iterator iter = bond_assignments.begin(); -+ for (std::vector<FPTBondOrderAssignment_*>::const_iterator iter = bond_assignments.begin(); - iter != bond_assignments.end(); ++iter) - { - backtrackers_.push_back(new DPBackTracking_(**iter, solution_number_, sorted_edges, upper_bound_)); -@@ -1906,39 +1909,6 @@ namespace BALL - initialize_(); - } - -- FPTBondOrderStrategy::DPBackTrackingCombiner_::DPBackTrackingCombiner_(std::vector<FPTBondOrderAssignment_>& bond_assignments, -- Size solution_number, Penalty upper_bound) -- : backtrackers_(), -- priority_queue_(), -- component_solutions_(bond_assignments.size()), -- assignment_(), -- solution_number_(solution_number), -- optimum_(FPTBondOrderStrategy::infinite_penalty), -- upper_bound_(upper_bound) -- { -- backtrackers_.reserve(bond_assignments.size()); -- -- MolecularGraph& graph = *bond_assignments[0].molecule_; -- sorted_edges.reserve(boost::num_edges(graph)); -- -- BGL_FORALL_EDGES(edge_it, graph, MolecularGraph) -- { -- sorted_edges.push_back(edge_it); -- } -- -- // sort bonds - the second vertex could be in false order -- FPTBondOrderStrategy::EdgeComparator_ ec(&graph); -- std::sort(sorted_edges.begin(), sorted_edges.end(), ec); -- -- for (std::vector<FPTBondOrderAssignment_>::iterator iter = bond_assignments.begin(); -- iter != bond_assignments.end(); ++iter) -- { -- backtrackers_.push_back(new DPBackTracking_(*iter, solution_number_, sorted_edges, upper_bound_)); -- } -- -- initialize_(); -- } -- - FPTBondOrderStrategy::DPBackTrackingCombiner_::~DPBackTrackingCombiner_() - { - clear(); -@@ -1946,14 +1916,14 @@ namespace BALL - - void FPTBondOrderStrategy::DPBackTrackingCombiner_::clear() - { -- for (std::vector<DPBackTracking_*>::iterator iter = backtrackers_.begin(); -+ for (std::vector<DPBackTracking_*>::iterator iter = backtrackers_.begin(); - iter != backtrackers_.end(); ++iter) - { - delete *iter; - } - } - -- FPTBondOrderStrategy::DPBackTrackingCombiner_& -+ FPTBondOrderStrategy::DPBackTrackingCombiner_& - FPTBondOrderStrategy::DPBackTrackingCombiner_::operator = (DPBackTrackingCombiner_ const& copy) - { - if (this != ©) -@@ -1972,7 +1942,7 @@ namespace BALL - return *this; - } - -- std::pair<Size, FPTBondOrderStrategy::Penalty> -+ std::pair<Size, FPTBondOrderStrategy::Penalty> - FPTBondOrderStrategy::DPBackTrackingCombiner_::getNextMinimumBackTracker_() const - { - if (backtrackers_.size() == 1) -@@ -2034,7 +2004,7 @@ namespace BALL - assignment_ = ass; - - return; -- } -+ } - else - { - throw Exception::OutOfRange(__FILE__, __LINE__); -@@ -2061,7 +2031,7 @@ namespace BALL - assignment_ = priority_queue_.top(); - - priority_queue_.pop(); -- } -+ } - else - { - throw Exception::OutOfRange(__FILE__, __LINE__); -@@ -2151,7 +2121,7 @@ namespace BALL - return assignment_; - } - -- std::vector<FPTBondOrderStrategy::DPBackTracking_*> -+ std::vector<FPTBondOrderStrategy::DPBackTracking_*> - FPTBondOrderStrategy::DPBackTrackingCombiner_::deepCopyOfBacktrackers_() const - { - std::vector<DPBackTracking_*> ts; -@@ -2166,5 +2136,4 @@ namespace BALL - return ts; - } - -- - } -diff --git a/source/STRUCTURE/assignBondOrderProcessor.C b/source/STRUCTURE/assignBondOrderProcessor.C -index f8acc4f..9863a54 100644 ---- a/source/STRUCTURE/assignBondOrderProcessor.C -+++ b/source/STRUCTURE/assignBondOrderProcessor.C -@@ -108,6 +108,9 @@ namespace BALL - const char* AssignBondOrderProcessor::Option::MAX_NUMBER_OF_SOLUTIONS = "max_number_of_solutions"; - const int AssignBondOrderProcessor::Default::MAX_NUMBER_OF_SOLUTIONS = 10; - -+ const char* AssignBondOrderProcessor::Option::MAX_PENALTY = "max_penalty_score"; -+ const int AssignBondOrderProcessor::Default::MAX_PENALTY = -1; -+ - const char* AssignBondOrderProcessor::Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS = "compute_also_non_optimal_solutions"; - const bool AssignBondOrderProcessor::Default::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS = false; - -@@ -148,6 +151,7 @@ namespace BALL - max_bond_order_(), - alpha_(), - max_number_of_solutions_(), -+ max_penalty_(-1), - compute_also_non_optimal_solutions_(), - add_missing_hydrogens_(), - compute_also_connectivity_(), -@@ -237,13 +241,14 @@ namespace BALL - ret &= s_it->second->readOptions(options); - } - -- max_bond_order_ = options.getInteger(Option::MAX_BOND_ORDER); -- alpha_ = options.getReal(Option::BOND_LENGTH_WEIGHTING); -- max_number_of_solutions_ = options.getInteger(Option::MAX_NUMBER_OF_SOLUTIONS); -+ max_bond_order_ = options.getInteger(Option::MAX_BOND_ORDER); -+ alpha_ = options.getReal(Option::BOND_LENGTH_WEIGHTING); -+ max_number_of_solutions_ = options.getInteger(Option::MAX_NUMBER_OF_SOLUTIONS); -+ max_penalty_ = options.getInteger(Option::MAX_PENALTY); - compute_also_non_optimal_solutions_ = options.getBool(Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS); -- add_missing_hydrogens_ = options.getBool(Option::ADD_HYDROGENS); -+ add_missing_hydrogens_ = options.getBool(Option::ADD_HYDROGENS); - compute_also_connectivity_ = options.getBool(Option::COMPUTE_ALSO_CONNECTIVITY); -- use_fine_penalty_ = options.getBool(Option::USE_FINE_PENALTY); -+ use_fine_penalty_ = options.getBool(Option::USE_FINE_PENALTY); - - if (max_bond_order_ <= 0) - { -@@ -257,6 +262,12 @@ namespace BALL - << " : Error in options! Please check the option Option::MAX_NUMBER_OF_SOLUTIONS." << endl; - ret = false; - } -+ if (max_penalty_ < -1) -+ { -+ Log.error() << __FILE__ << " " << __LINE__ -+ << " : Error in options! Please check the option Option::MAX_PENALTY." << endl; -+ ret = false; -+ } - if ((alpha_ < 0) || ((alpha_ > 1))) - { - Log.error() << __FILE__ << " " << __LINE__ -@@ -280,14 +291,13 @@ namespace BALL - || (options.getBool(Option::OVERWRITE_SELECTED_BONDS) == true) - || (options.getBool(Option::OVERWRITE_SINGLE_BOND_ORDERS) == false) - || (options.getBool(Option::OVERWRITE_DOUBLE_BOND_ORDERS) == false) -- || (options.getBool(Option::OVERWRITE_TRIPLE_BOND_ORDERS) == false) -- || (options.getInteger(Option::MAX_NUMBER_OF_SOLUTIONS) == 0)) -+ || (options.getBool(Option::OVERWRITE_TRIPLE_BOND_ORDERS) == false) ) - ) - { - Log.error() << __FILE__ << " " << __LINE__ - << " : Error in options! FPT cannot be used with these options." << endl -- << " Switch to solution strategy ASTAR by setting Option::ALGORITHM to Algorithm::ASTAR." << endl; -- -+ << " Consider switch to solution strategy ASTAR by setting Option::ALGORITHM to Algorithm::ASTAR." << endl -+ << " Abort." << endl; - ret = false; - } - -@@ -328,6 +338,7 @@ cout << " \t Penalty file " << options[Option::Option::INIFile] << endl; - cout << " \t alpha: " << options[Option::BOND_LENGTH_WEIGHTING] << endl; - cout << " \t max bond order: " << options[Option::MAX_BOND_ORDER] << endl; - cout << " \t max number of solutions " << options[Option::MAX_NUMBER_OF_SOLUTIONS] << endl; -+cout << " \t max penalty " << options[Option::MAX_PENALTY] << endl; - cout << " \t compute also non-optimal solutions: " << options.getBool(Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS) << endl; - cout << " \t compute also connectivity: " << options.getBool(Option::COMPUTE_ALSO_CONNECTIVITY) << endl; - cout << " \t connectivity cutoff: " << options[Option::CONNECTIVITY_CUTOFF] << endl; -@@ -354,7 +365,7 @@ cout << endl; - // check the options - - // What kind of composite do we have? -- // Do we have a molecule? (Nothingelse is allowed) -+ // Do we have a molecule? (Nothing else is allowed) - if (RTTI::isKindOf<Molecule>(ac)) - { - // Store the AtomContainer -@@ -517,7 +528,7 @@ cout << "preassignPenaltyClasses_:" << preassignPenaltyClasses_() << " precomput - #ifdef BALL_HAS_LPSOLVE - strategy = strategies_["ILP"].get(); - #else -- Log.error() << "Error: BALL was configured without lpsolve support! Try A_STAR instead!" << -+ Log.error() << "Error: BALL was configured without lpsolve support! Try A_STAR or FPT instead!" << - __FILE__ << " " << __LINE__<< std::endl; - - return Processor::ABORT; -@@ -552,16 +563,20 @@ cout << "preassignPenaltyClasses_:" << preassignPenaltyClasses_() << " precomput - solutions_.push_back(*solution); - - // Do we have to find more solutions? -- bool found_another = true; -- bool last_sol_is_optimal = true; -+ bool found_another = true; -+ bool last_sol_is_optimal = true; -+ bool consider_max_penalty = (max_penalty_ > -1); -+ double last_penalty = getTotalPenalty(0); - - while ( found_another - && ((getNumberOfComputedSolutions() < max_number_of_solutions_) || (!max_number_of_solutions_)) - && (last_sol_is_optimal || (compute_also_non_optimal_solutions_)) -+ && ((last_penalty <= max_penalty_) || (!consider_max_penalty)) - ) - { - found_another = computeNextSolution(options.getBool(Option::APPLY_FIRST_SOLUTION)); - last_sol_is_optimal &= (fabs(getTotalPenalty(0) - getTotalPenalty(solutions_.size()-1)) < 1.e-4); -+ last_penalty = getTotalPenalty(solutions_.size()-1); - } - #if defined DEBUG_TIMER - timer_.stop(); -@@ -1206,6 +1221,9 @@ cout << " ~~~~~~~~ added hydrogen dump ~~~~~~~~~~~~~~~~" << endl; - options.setDefaultInteger(AssignBondOrderProcessor::Option::MAX_NUMBER_OF_SOLUTIONS, - AssignBondOrderProcessor::Default::MAX_NUMBER_OF_SOLUTIONS); - -+ options.setDefaultInteger(AssignBondOrderProcessor::Option::MAX_PENALTY, -+ AssignBondOrderProcessor::Default::MAX_PENALTY); -+ - options.setDefaultBool(AssignBondOrderProcessor::Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS, - AssignBondOrderProcessor::Default::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS); - diff --git a/sci-chemistry/ball/files/ball-1.4.1-Fix-compilation-of-FTPBondOrderStrategy-Fixes-451.patch b/sci-chemistry/ball/files/ball-1.4.1-Fix-compilation-of-FTPBondOrderStrategy-Fixes-451.patch deleted file mode 100644 index 40b4b252fa48..000000000000 --- a/sci-chemistry/ball/files/ball-1.4.1-Fix-compilation-of-FTPBondOrderStrategy-Fixes-451.patch +++ /dev/null @@ -1,138 +0,0 @@ -From: Anna Dehof <anne@bioinf.uni-sb.de> -Date: Fri, 8 Jun 2012 19:28:12 +0200 -Subject: Fix compilation of FTPBondOrderStrategy (Fixes #451) - -This patch is due to Daniel Stoeckel. ---- - source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C | 33 +++++++++++--------- - 1 file changed, 18 insertions(+), 15 deletions(-) - -diff --git a/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C b/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -index 6572d96..98adf98 100644 ---- a/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -+++ b/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -@@ -322,7 +322,7 @@ namespace BALL - } - } - -- return *best; -+ return DPConstRow_(boost::reference_wrapper<DPConfig_ const>(best->first), best->second); - } - - FPTBondOrderStrategy::Penalty FPTBondOrderStrategy::DPTable_::operator[](FPTBondOrderStrategy::DPConfig_ const& config) const -@@ -601,6 +601,9 @@ namespace BALL - - return bonds; - } -+ -+#define convertToCRow(tmp)\ -+ std::make_pair(boost::reference_wrapper<const DPConfig_>((tmp).first), (tmp).second) - - void FPTBondOrderStrategy::FPTBondOrderAssignment_::computeIntroduceBag(TreeDecompositionBag& bag, DPTable_& child, - AdditionalBagProperties_& property) -@@ -621,7 +624,7 @@ namespace BALL - // copy with n new bondvalue-columns with different values - for (DPTable_::const_iterator iter = child.begin(); iter != child.end(); ++iter) - { -- DPConstRow_ child_entry = *iter; -+ DPConstRow_ child_entry = convertToCRow(*iter); - DPConfig_ conf(num_valences, num_bonds); - - Size vindex = 0; -@@ -786,7 +789,7 @@ namespace BALL - - for (DPTable_::const_iterator entry_iterator = child.begin(); entry_iterator != child.end(); ++entry_iterator) - { -- Penalty entry_penalty(forgetInnerVertexIn(bag, *entry_iterator, new_entry, child_property.bonds, forgotten_index)); -+ Penalty entry_penalty(forgetInnerVertexIn(bag, convertToCRow(*entry_iterator), new_entry, child_property.bonds, forgotten_index)); - if (entry_penalty < upper_bound_) - { - property.table->insert(new_entry, entry_penalty); -@@ -803,7 +806,7 @@ namespace BALL - Penalty min_penalty = FPTBondOrderStrategy::infinite_penalty; - for (DPTable_::const_iterator iter = child.begin(); iter != child.end(); ++iter) - { -- min_penalty = std::min(min_penalty, forgetInnerVertexIn(bag, *iter, empty, empty_list, 0)); -+ min_penalty = std::min(min_penalty, forgetInnerVertexIn(bag, convertToCRow(*iter), empty, empty_list, 0)); - - if (Maths::isEqual(0, min_penalty)) - { -@@ -830,14 +833,14 @@ namespace BALL - // insert each entry of the left child into a DPJoinMap - for (DPTable_::const_iterator left_iter = left_child.begin(); left_iter != left_child.end(); ++left_iter) - { -- DPConstRow_ left_entry = *left_iter; -+ DPConstRow_ left_entry = convertToCRow(*left_iter); - map.insert(std::pair<DPConfig_ const*, Penalty> (left_entry.first.get_pointer(), left_entry.second)); - } - - // find for each entry of the right child's table appropiate entries in the DPJoinMap (which have the same bondvalues) - for (DPTable_::const_iterator r_iter = right_child.begin(); r_iter != right_child.end(); ++r_iter) - { -- DPConstRow_ right_entry = *r_iter; -+ DPConstRow_ right_entry = convertToCRow(*r_iter); - DPConfig_ const* right_conf = right_entry.first.get_pointer(); - - std::pair<DPJoinMap_::const_iterator, DPJoinMap_::const_iterator> matching_range(map.equal_range(right_conf)); -@@ -1602,7 +1605,7 @@ namespace BALL - // insert possible antecessors in vectors - for (DPTable_::const_iterator iter = left_table.begin(); iter != left_table.end(); ++iter) - { -- DPConstRow_ antecessor = *iter; -+ DPConstRow_ antecessor = convertToCRow(*iter); - if (comp.compare(&successor, antecessor.first.get_pointer()) == 0) - { - left_entries.push_back(iter); -@@ -1611,7 +1614,7 @@ namespace BALL - - for (DPTable_::const_iterator iter = right_table.begin(); iter != right_table.end(); ++iter) - { -- DPConstRow_ antecessor = *iter; -+ DPConstRow_ antecessor = convertToCRow(*iter); - if (comp.compare(&successor, antecessor.first.get_pointer()) == 0) - { - right_entries.push_back(iter); -@@ -1623,10 +1626,10 @@ namespace BALL - - for (std::vector<DPTable_::const_iterator>::const_iterator left = left_entries.begin(); left != left_entries.end(); ++left) - { -- DPConstRow_ left_entry = **left; -+ DPConstRow_ left_entry = convertToCRow(**left); - for (std::vector<DPTable_::const_iterator>::const_iterator right = right_entries.begin(); right != right_entries.end(); ++right) - { -- DPConstRow_ right_entry = **right; -+ DPConstRow_ right_entry = convertToCRow(**right); - - // check sum of valences - bool correct_valences = true; -@@ -1657,8 +1660,8 @@ namespace BALL - - Penalty best_penalty = best.first->second + best.second->second; - -- DPConstRow_ left = *best.first; -- DPConstRow_ right = *best.second; -+ DPConstRow_ left = convertToCRow(*best.first); -+ DPConstRow_ right = convertToCRow(*best.second); - - extendState(state, left.first, 0); - ++state.index; -@@ -1668,8 +1671,8 @@ namespace BALL - { - DPPairIt_ entry = *iter; - -- DPConstRow_ left = *entry.first; -- DPConstRow_ right = *entry.second; -+ DPConstRow_ left = convertToCRow(*entry.first); -+ DPConstRow_ right = convertToCRow(*entry.second); - - Penalty add_penalty = (left.second + right.second) - best_penalty; - if (isSolutionNeeded(state.assignment.penalty + add_penalty)) -@@ -1720,7 +1723,7 @@ namespace BALL - // check for each row entry: is it a possible anteccessor? - for (DPTable_::iterator iter = table.begin(); iter != table.end(); ++iter) - { -- Penalty pen = bond_assignment_->forgetInnerVertexIn(bag, *iter, test_entry, child_bonds, forgotten_index); -+ Penalty pen = bond_assignment_->forgetInnerVertexIn(bag, convertToCRow(*iter), test_entry, child_bonds, forgotten_index); - - if (pen < FPTBondOrderStrategy::infinite_penalty && test_entry == successor) - { diff --git a/sci-chemistry/ball/files/ball-1.4.1-Fix-compilation-of-Python-bindings-with-new-sip-vers.patch b/sci-chemistry/ball/files/ball-1.4.1-Fix-compilation-of-Python-bindings-with-new-sip-vers.patch deleted file mode 100644 index 38b3ba0dab1b..000000000000 --- a/sci-chemistry/ball/files/ball-1.4.1-Fix-compilation-of-Python-bindings-with-new-sip-vers.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Andreas Hildebrandt <andreas.hildebrandt@uni-mainz.de> -Date: Wed, 15 Aug 2012 00:12:49 +0200 -Subject: Fix compilation of Python bindings with new sip versions. - -For some reason, sip does not like static members of the same type as the class. -In this case, a varget_... - method is generated with the wrong arguments -(unnamed parameter which should be called "sipSelf"). This patch works around -it. ---- - source/PYTHON/EXTENSIONS/BALL/PTE_.sip | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/source/PYTHON/EXTENSIONS/BALL/PTE_.sip b/source/PYTHON/EXTENSIONS/BALL/PTE_.sip -index 4589e92..3e5f8ff 100644 ---- a/source/PYTHON/EXTENSIONS/BALL/PTE_.sip -+++ b/source/PYTHON/EXTENSIONS/BALL/PTE_.sip -@@ -61,7 +61,7 @@ class Element - //friend ostream& operator << (ostream& s, const Element&); - bool isUnknown() const; - -- static Element UNKNOWN; -+ Element UNKNOWN; - }; - - class PTE_ diff --git a/sci-chemistry/ball/files/ball-1.4.1-Fixed-a-bug-in-the-AssignBondOrderProcessor.patch b/sci-chemistry/ball/files/ball-1.4.1-Fixed-a-bug-in-the-AssignBondOrderProcessor.patch deleted file mode 100644 index 813c9369bdac..000000000000 --- a/sci-chemistry/ball/files/ball-1.4.1-Fixed-a-bug-in-the-AssignBondOrderProcessor.patch +++ /dev/null @@ -1,271 +0,0 @@ -From: Anna Dehof <anne@bioinf.uni-sb.de> -Date: Fri, 27 Apr 2012 18:41:52 +0200 -Subject: Fixed a bug in the AssignBondOrderProcessor - ---- - .../STRUCTURE/BONDORDERS/bondOrderAssignment.h | 2 +- - source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C | 13 +++-- - source/STRUCTURE/assignBondOrderProcessor.C | 27 +++++++---- - source/TEST/AssignBondOrderProcessor_test.C | 50 +++++++++++++++----- - 4 files changed, 67 insertions(+), 25 deletions(-) - -diff --git a/include/BALL/STRUCTURE/BONDORDERS/bondOrderAssignment.h b/include/BALL/STRUCTURE/BONDORDERS/bondOrderAssignment.h -index 57adc41..f8aab75 100644 ---- a/include/BALL/STRUCTURE/BONDORDERS/bondOrderAssignment.h -+++ b/include/BALL/STRUCTURE/BONDORDERS/bondOrderAssignment.h -@@ -68,7 +68,7 @@ namespace BALL - float total_charge; - int node_expansions; - int queue_size; -- -+ - AtomContainer* ac; - }; - } -diff --git a/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C b/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -index 107823e..6572d96 100644 ---- a/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -+++ b/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -@@ -108,7 +108,8 @@ namespace BALL - } - else - { -- /* Log.info() << "AssignBondOrderProcessor: strategy FPT does not support computeNextSolution(). " << endl -+ // since we return a pointer, nothing to do here -+ /* Log.info() << "AssignBondOrderProcessor: strategy FPT does not support computeNextSolution(). " << endl - << "Please use the options Option::MAX_NUMBER_OF_SOLUTIONS or Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS " << endl - << "to compute additional solutions." << endl; */ - } -@@ -1429,12 +1430,12 @@ namespace BALL - - bool FPTBondOrderStrategy::DPBackTracking_::hasMoreSolutions() const - { -- return (!queue_.empty() && (!max_num_solutions_ || (num_computed_solutions_ <= max_num_solutions_))); -+ return (!queue_.empty() && (!max_num_solutions_ || (num_computed_solutions_ < max_num_solutions_))); - } - - void FPTBondOrderStrategy::DPBackTracking_::nextSolution() - { -- if (queue_.empty() || max_heap_size_ == 0 || ((max_num_solutions_ > 0) && (num_computed_solutions_ > max_num_solutions_))) -+ if (queue_.empty() || (max_heap_size_ == 0) || ((max_num_solutions_ > 0) && (num_computed_solutions_ > max_num_solutions_))) - { - throw Exception::OutOfRange(__FILE__, __LINE__); - } -@@ -1987,7 +1988,9 @@ namespace BALL - - bool FPTBondOrderStrategy::DPBackTrackingCombiner_::hasMoreSolutions() const - { -- return (!priority_queue_.empty() || (getNextMinimumBackTracker_().second) < upper_bound_); -+ std::pair<Size, Penalty> next_min = getNextMinimumBackTracker_(); -+ -+ return (backtrackers_[next_min.first]->hasMoreSolutions() && (!priority_queue_.empty() || (next_min.second) < upper_bound_)); - } - - void FPTBondOrderStrategy::DPBackTrackingCombiner_::nextSolution() -@@ -2014,7 +2017,7 @@ namespace BALL - // compute next minimal Solution - std::pair<Size, Penalty> next_min = getNextMinimumBackTracker_(); - -- if (next_min.second < upper_bound_ && (priority_queue_.empty() || next_min.second < priority_queue_.top().penalty)) -+ if ((next_min.second < upper_bound_) && (priority_queue_.empty() || (next_min.second < priority_queue_.top().penalty))) - { - DPBackTracking_& min_back_tracker = *backtrackers_[next_min.first]; - -diff --git a/source/STRUCTURE/assignBondOrderProcessor.C b/source/STRUCTURE/assignBondOrderProcessor.C -index 9863a54..9443fb8 100644 ---- a/source/STRUCTURE/assignBondOrderProcessor.C -+++ b/source/STRUCTURE/assignBondOrderProcessor.C -@@ -295,8 +295,20 @@ namespace BALL - ) - { - Log.error() << __FILE__ << " " << __LINE__ -- << " : Error in options! FPT cannot be used with these options." << endl -- << " Consider switch to solution strategy ASTAR by setting Option::ALGORITHM to Algorithm::ASTAR." << endl -+ << " : Error in options! FPT cannot be used with these option(s): "; -+ if (options.getReal(Option::BOND_LENGTH_WEIGHTING) > 0.) -+ Log.error() << "BOND_LENGTH_WEIGHTING "; -+ if (options.getBool(Option::ADD_HYDROGENS)) -+ Log.error() << "ADD_HYDROGENS "; -+ if (options.getBool(Option::COMPUTE_ALSO_CONNECTIVITY)) -+ Log.error() << "COMPUTE_ALSO_CONNECTIVITY "; -+ if (options.getBool(Option::OVERWRITE_SELECTED_BONDS)) -+ Log.error() << "OVERWRITE_SELECTED_BONDS "; -+ if (!options.getBool(Option::OVERWRITE_SINGLE_BOND_ORDERS)) -+ Log.error() << "OVERWRITE_SINGLE_BOND_ORDERS "; -+ Log.error() << endl; -+ -+ Log.error() << " Consider switch to solution strategy ASTAR by setting Option::ALGORITHM to Algorithm::ASTAR." << endl - << " Abort." << endl; - ret = false; - } -@@ -321,8 +333,8 @@ namespace BALL - - #ifdef DEBUG - cout << " OPTIONS:" << endl; --cout << " \t Algorithm: " << options[Option::Option::ALGORITHM] << endl; --cout << " \t Heuristic: " << options[Option::Option::HEURISTIC] << endl; -+cout << " \t Algorithm: " << options[Option::ALGORITHM] << endl; -+cout << " \t Heuristic: " << options[Option::HEURISTIC] << endl; - - cout << " \t Overwrite bonds (single, double, triple, selected):" - << options.getBool(Option::OVERWRITE_SINGLE_BOND_ORDERS) << " " -@@ -334,7 +346,7 @@ cout << " \t Overwrite bonds (single, double, triple, selected):" - cout << " \t Add hydrogens : " << options.getBool(Option::ADD_HYDROGENS) << endl; - cout << " \t Use fine penalty : " << options.getBool(Option::USE_FINE_PENALTY) << endl; - cout << " \t Kekulizer: " << options.getBool(Option::KEKULIZE_RINGS) << endl; --cout << " \t Penalty file " << options[Option::Option::INIFile] << endl; -+cout << " \t Penalty file " << options[Option::INIFile] << endl; - cout << " \t alpha: " << options[Option::BOND_LENGTH_WEIGHTING] << endl; - cout << " \t max bond order: " << options[Option::MAX_BOND_ORDER] << endl; - cout << " \t max number of solutions " << options[Option::MAX_NUMBER_OF_SOLUTIONS] << endl; -@@ -549,7 +561,7 @@ cout << "preassignPenaltyClasses_:" << preassignPenaltyClasses_() << " precomput - boost::shared_ptr<BondOrderAssignment> solution = strategy->computeNextSolution(); - - // Do we have a solution? -- if (!solution) -+ if (!solution || !solution->valid) - { - Log.info() << "AssignBondOrderProcessor: No valid bond order assignment found!" << endl; - #if defined DEBUG_TIMER -@@ -1237,7 +1249,6 @@ cout << " ~~~~~~~~ added hydrogen dump ~~~~~~~~~~~~~~~~" << endl; - AssignBondOrderProcessor::Default::APPLY_FIRST_SOLUTION); - } - -- - bool AssignBondOrderProcessor::apply(Position i) - { - bool result = false; -@@ -1370,7 +1381,7 @@ cout << " ~~~~~~~~ added hydrogen dump ~~~~~~~~~~~~~~~~" << endl; - - boost::shared_ptr<BondOrderAssignment> solution = strategy->computeNextSolution(); - -- if (solution) -+ if (solution && solution->valid) - { - solutions_.push_back(*solution); - found_a_sol = true; -diff --git a/source/TEST/AssignBondOrderProcessor_test.C b/source/TEST/AssignBondOrderProcessor_test.C -index 6dfafcc..fdf92d1 100644 ---- a/source/TEST/AssignBondOrderProcessor_test.C -+++ b/source/TEST/AssignBondOrderProcessor_test.C -@@ -201,6 +201,8 @@ RESULT - - - CHECK(check Options for consistency) -+ Log.error().disableOutput(); -+ - AssignBondOrderProcessor testbop; - testbop.setDefaultOptions(); - TEST_EQUAL(testbop.hasValidOptions(), true) -@@ -208,21 +210,17 @@ CHECK(check Options for consistency) - testbop.setDefaultOptions(); - testbop.options.set(AssignBondOrderProcessor::Option::ALGORITHM, AssignBondOrderProcessor::Algorithm::FPT); - testbop.options.set(AssignBondOrderProcessor::Option::ADD_HYDROGENS, true); -- - TEST_EQUAL(testbop.hasValidOptions(), false) - - testbop.setDefaultOptions(); - testbop.options.set(AssignBondOrderProcessor::Option::ALGORITHM, AssignBondOrderProcessor::Algorithm::FPT); - testbop.options.set(AssignBondOrderProcessor::Option::OVERWRITE_SELECTED_BONDS, true); -- - TEST_EQUAL(testbop.hasValidOptions(), false) - - testbop.setDefaultOptions(); - testbop.options.set(AssignBondOrderProcessor::Option::ALGORITHM, AssignBondOrderProcessor::Algorithm::FPT); - testbop.options.set(AssignBondOrderProcessor::Option::MAX_NUMBER_OF_SOLUTIONS, 0); -- -- TEST_EQUAL(testbop.hasValidOptions(), false) -- -+ TEST_EQUAL(testbop.hasValidOptions(), true) - - testbop.setDefaultOptions(); - testbop.options.set(AssignBondOrderProcessor::Option::ALGORITHM, AssignBondOrderProcessor::Algorithm::FPT); -@@ -230,9 +228,8 @@ CHECK(check Options for consistency) - testbop.options.set(AssignBondOrderProcessor::Option::OVERWRITE_SINGLE_BOND_ORDERS, true); - testbop.options.set(AssignBondOrderProcessor::Option::COMPUTE_ALSO_CONNECTIVITY, true); - testbop.options.set(AssignBondOrderProcessor::Option::MAX_NUMBER_OF_SOLUTIONS, 0); -- - TEST_EQUAL(testbop.hasValidOptions(), false) -- -+ Log.error().enableOutput(); - RESULT - - /////////////////////// ALGORITHMS ////////////////////// -@@ -841,10 +838,11 @@ CHECK(getTotalPenalty(Position i) and operator() FPT single solution) - System sys2; - MOL2File mol_in2(BALL_TEST_DATA_PATH(AssignBondOrderProcessor_test_AN06.mol2), std::ios::in); - mol_in2 >> sys2; -+ TEST_EQUAL(testbop.getNumberOfComputedSolutions(), 10) -+ - sys2.apply(testbop); - TEST_REAL_EQUAL(testbop.getTotalPenalty(0), 2.f)//0.00625) - -- - System sys3; - MOL2File mol_in3(BALL_TEST_DATA_PATH(AssignBondOrderProcessor_test_BEWCUB.mol2), std::ios::in); - mol_in3 >> sys3; -@@ -856,6 +854,7 @@ CHECK(getTotalPenalty(Position i) and operator() FPT single solution) - MOL2File mol15(BALL_TEST_DATA_PATH(AssignBondOrderProcessor_test_CUDJAM_sol_5.mol2), std::ios::in); - mol15 >> sys15; - sys15.apply(testbop); -+ - TEST_REAL_EQUAL(testbop.getTotalPenalty(1), 2.f ) //0.0015528 ) - TEST_REAL_EQUAL(testbop.getTotalPenalty(2), 5.f ) //0.00388199) - TEST_REAL_EQUAL(testbop.getTotalPenalty(3), 7.f ) //0.00543478) -@@ -904,6 +903,34 @@ CHECK(getTotalPenalty(Position i) and operator() FPT single solution) - - RESULT - -+CHECK(operator() FPT vs A*) -+ AssignBondOrderProcessor testbop_a; -+ testbop_a.options.set(AssignBondOrderProcessor::Option::ALGORITHM,AssignBondOrderProcessor::Algorithm::A_STAR); -+ testbop_a.options.setBool(AssignBondOrderProcessor::Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS, true); -+ -+ AssignBondOrderProcessor testbop_fpt; -+ testbop_fpt.options.set(AssignBondOrderProcessor::Option::ALGORITHM,AssignBondOrderProcessor::Algorithm::FPT); -+ testbop_fpt.options.setBool(AssignBondOrderProcessor::Option::COMPUTE_ALSO_NON_OPTIMAL_SOLUTIONS, true); -+ -+ System sys4; -+ MOL2File mol4(BALL_TEST_DATA_PATH(AssignBondOrderProcessor_test_CITSED10_sol_6.mol2), std::ios::in); -+ mol4 >> sys4; -+ sys4.apply(testbop_a); -+ sys4.apply(testbop_fpt); -+ TEST_REAL_EQUAL(testbop_a.getNumberOfComputedSolutions(), testbop_fpt.getNumberOfComputedSolutions()) -+ -+ TEST_REAL_EQUAL(testbop_a.getTotalPenalty(0), testbop_fpt.getTotalPenalty(0)) //1.f ) -+ TEST_REAL_EQUAL(testbop_a.getTotalPenalty(1), testbop_fpt.getTotalPenalty(1)) //1.f ) -+ TEST_REAL_EQUAL(testbop_a.getTotalPenalty(2), testbop_fpt.getTotalPenalty(2)) //32.f) -+ TEST_REAL_EQUAL(testbop_a.getTotalPenalty(3), testbop_fpt.getTotalPenalty(3)) //34.f) -+ TEST_REAL_EQUAL(testbop_a.getTotalPenalty(4), testbop_fpt.getTotalPenalty(4)) //34.f) -+ TEST_REAL_EQUAL(testbop_a.getTotalPenalty(5), testbop_fpt.getTotalPenalty(5)) //34.f) -+ TEST_REAL_EQUAL(testbop_a.getTotalPenalty(6), testbop_fpt.getTotalPenalty(6)) //66.f) -+ TEST_REAL_EQUAL(testbop_a.getTotalPenalty(7), testbop_fpt.getTotalPenalty(7)) //66.f) -+ TEST_REAL_EQUAL(testbop_a.getTotalPenalty(8), testbop_fpt.getTotalPenalty(8)) //67.f) -+ -+RESULT -+ - - CHECK(getTotalCharge(Position i)) - // This feature is experimental!! -@@ -1023,7 +1050,7 @@ CHECK(computeNextSolution() using ILP) - MOL2File mol_in(BALL_TEST_DATA_PATH(AssignBondOrderProcessor_test_AN06.mol2), std::ios::in); - mol_in >> sys; - sys.apply(testbop); -- TEST_EQUAL(testbop.getNumberOfComputedSolutions(),1) -+ TEST_EQUAL(testbop.getNumberOfComputedSolutions(), 1) - TEST_REAL_EQUAL(testbop.getTotalPenalty(0), 2.f)//0.00625)// 2.) - TEST_EQUAL(testbop.computeNextSolution(), true) - TEST_REAL_EQUAL(testbop.getTotalPenalty(1), 32.f)//0.1)//32.) -@@ -1091,9 +1118,10 @@ CHECK(computeNextSolution() using FPT) - MOL2File mol_in(BALL_TEST_DATA_PATH(AssignBondOrderProcessor_test_AN06.mol2), std::ios::in); - mol_in >> sys; - sys.apply(testbop); -- TEST_EQUAL(testbop.getNumberOfComputedSolutions(),1) -+ TEST_EQUAL(testbop.getNumberOfComputedSolutions(), 1) - TEST_REAL_EQUAL(testbop.getTotalPenalty(0), 2.f)//0.00625)// 2.) -- TEST_EQUAL(testbop.computeNextSolution(), false) -+ bool test = testbop.computeNextSolution(); -+ TEST_EQUAL(test, false) - - RESULT - diff --git a/sci-chemistry/ball/files/ball-1.4.1-Fixed-the-FPT-version-of-bond-order-assignment-2.patch b/sci-chemistry/ball/files/ball-1.4.1-Fixed-the-FPT-version-of-bond-order-assignment-2.patch deleted file mode 100644 index c5d3fddb1b89..000000000000 --- a/sci-chemistry/ball/files/ball-1.4.1-Fixed-the-FPT-version-of-bond-order-assignment-2.patch +++ /dev/null @@ -1,444 +0,0 @@ - include/BALL/DATATYPE/GRAPH/graphAlgorithms.h | 7 +- - include/BALL/DATATYPE/GRAPH/treeWidth.h | 44 ++++++- - include/BALL/DATATYPE/GRAPH/treeWidth.iC | 145 +++++++++++++-------- - source/DATATYPE/GRAPH/treeWidth.C | 24 ++++ - source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C | 12 +- - 5 files changed, 161 insertions(+), 71 deletions(-) - -diff --git a/include/BALL/DATATYPE/GRAPH/graphAlgorithms.h b/include/BALL/DATATYPE/GRAPH/graphAlgorithms.h -index d10de34..5e218ff 100644 ---- a/include/BALL/DATATYPE/GRAPH/graphAlgorithms.h -+++ b/include/BALL/DATATYPE/GRAPH/graphAlgorithms.h -@@ -25,7 +25,7 @@ namespace boost - enum vertex_orig_ptr_t { vertex_orig_ptr }; - - enum edge_bond_ptr_t { edge_bond_ptr }; -- enum edge_orig_ptr_t { edge_orig_ptr }; -+ enum edge_orig_ptr_t { edge_orig_ptr }; - - BOOST_INSTALL_PROPERTY(vertex, atom_ptr); - BOOST_INSTALL_PROPERTY(vertex, orig_ptr); -@@ -150,7 +150,7 @@ namespace BALL - { - bi = ai; ++bi; - for (; bi != ai_end; ++bi) -- if (!boost::edge(*ai, *bi, graph).second) -+ if (*bi != *ai && !boost::edge(*ai, *bi, graph).second) - boost::add_edge(*ai, *bi, graph); - } - -@@ -179,7 +179,6 @@ namespace BALL - - typedef typename boost::property_traits<typename boost::property_map<UndirectedGraph, boost::edge_all_t>::type>::value_type EdgeProperties; - -- EdgeProperties ep = boost::get(boost::edge_all_t(), graph, boost::edge(vertex, *ai, graph).first) ; - result.getEdgeProperties().push_back(boost::get(boost::edge_all_t(), graph, boost::edge(vertex, *ai, graph).first)); - - bi = ai; ++bi; -@@ -189,7 +188,7 @@ namespace BALL - { - boost::add_edge(*ai, *bi, graph); - result.getEdges().push_back(std::make_pair(boost::get(boost::vertex_index, graph, *ai), -- boost::get(boost::vertex_index, graph, *bi))); -+ boost::get(boost::vertex_index, graph, *bi))); - } - } - } -diff --git a/include/BALL/DATATYPE/GRAPH/treeWidth.h b/include/BALL/DATATYPE/GRAPH/treeWidth.h -index dc7cdc5..f7687ef 100644 ---- a/include/BALL/DATATYPE/GRAPH/treeWidth.h -+++ b/include/BALL/DATATYPE/GRAPH/treeWidth.h -@@ -30,10 +30,12 @@ - #include <map> - #include <set> - #include <vector> -+#include <iostream> - - #include <boost/graph/connected_components.hpp> - #include <boost/graph/filtered_graph.hpp> - #include <boost/graph/graph_as_tree.hpp> -+#include <boost/graph/graphviz.hpp> - #include <boost/graph/copy.hpp> - - namespace boost -@@ -91,7 +93,7 @@ namespace BALL - END_BAG - }; - -- typedef typename GRAPH::GraphTraits<UndirectedGraph>::EditableGraph EditableGraph; -+ typedef typename GRAPH::GraphTraits<UndirectedGraph>::EditableGraph EditableGraph; - typedef typename boost::graph_traits<UndirectedGraph>::vertex_descriptor OriginalVertexType; - - typedef std::set<OriginalVertexType> TreeDecompositionContent; -@@ -111,6 +113,16 @@ namespace BALL - - TreeWidth(UndirectedGraph const& input); - -+ /** Compute the tree width of a given tree decomposition. -+ * This function iterates over all nodes in the graph to determine the tree width, -+ * i.e., the (maximum number of vertices over all bags) - 1 -+ */ -+ static Size computeTreeWidth(TreeDecomposition const& td); -+ -+ /** Write a tree decomposition in graphviz format. -+ */ -+ void writeGraphvizFile(std::ostream& out, TreeDecomposition const& td); -+ - std::vector<boost::shared_ptr<EditableGraph> >& getComponents() { return components_; } - std::vector<boost::shared_ptr<TreeDecomposition> >& getNiceTreeDecompositions() { return nice_tree_decompositions_; } - -@@ -120,25 +132,44 @@ namespace BALL - { - public: - ComponentFilter_(ComponentMap cm, Position i) -- : cm_(&cm), -+ : cm_(cm), - component_(i) - { } - - template <typename Vertex> - bool operator() (const Vertex& e) const - { -- return ((*cm_)[e] == component_); -+ return ((cm_)[e] == component_); - } - - protected: -- ComponentMap* cm_; -+ ComponentMap cm_; - Position component_; - }; - -+ /** PropertyWriter for graphviz output. -+ */ -+ class BagContentWriter -+ { -+ public: -+ BagContentWriter(TreeDecomposition const* td, UndirectedGraph const* original_graph) -+ : td_(td), -+ original_graph_(original_graph) -+ { } -+ -+ void operator() (std::ostream& out, const TreeDecompositionBag& v) const; -+ -+ protected: -+ TreeDecomposition const* td_; -+ UndirectedGraph const* original_graph_; -+ }; -+ -+ // TODO: would UndirectedGraph suffice here? - MolecularGraph const* input_; -+ - std::vector<boost::shared_ptr<EditableGraph> > components_; - -- std::vector<boost::shared_ptr<TreeDecomposition> > nice_tree_decompositions_; -+ std::vector<boost::shared_ptr<TreeDecomposition> > nice_tree_decompositions_; - std::vector<boost::shared_ptr<TreeDecompositionGraph> > nice_tree_decomposition_graphs_; - }; - -@@ -397,6 +428,9 @@ namespace BALL - * The bitset remembers the eliminated vertices without an ordering. - */ - BitSet buildBitset() const; -+ -+ protected: -+ std::map<int, VertexType> index_to_vertex_; - }; - - /** -diff --git a/include/BALL/DATATYPE/GRAPH/treeWidth.iC b/include/BALL/DATATYPE/GRAPH/treeWidth.iC -index 633e588..99f14cf 100644 ---- a/include/BALL/DATATYPE/GRAPH/treeWidth.iC -+++ b/include/BALL/DATATYPE/GRAPH/treeWidth.iC -@@ -68,6 +68,34 @@ namespace BALL - } - } - -+ template <class UndirectedGraph> -+ Size TreeWidth<UndirectedGraph>::computeTreeWidth(TreeDecomposition const& td) -+ { -+ Size result = 1; -+ -+ BGL_FORALL_VERTICES_T(current_vertex, td._g, UndirectedGraph) -+ { -+ result = std::max((Size)(boost::get(boost::vertex_bag_content, td, current_vertex).size()), result); -+ } -+ -+ return result - 1; -+ } -+ -+ template <class UndirectedGraph> -+ void TreeWidth<UndirectedGraph>::writeGraphvizFile(std::ostream& out, TreeDecomposition const& td) -+ { -+ boost::write_graphviz(out, td._g, BagContentWriter(&td, input_)); -+ } -+ -+ template <> -+ void TreeWidth<MolecularGraph>::BagContentWriter::operator() (std::ostream& out, const TreeDecompositionBag& v) const; -+ -+ template <class UndirectedGraph> -+ void TreeWidth<UndirectedGraph>::BagContentWriter::operator() (std::ostream& out, const TreeDecompositionBag& v) const -+ { -+ out << "[label=\"" << boost::get(boost::vertex_index, *td_, v) << "\"]"; -+ } -+ - // ***************************************************************************************** - // * TreeWidthImplementation * - // ***************************************************************************************** -@@ -322,8 +350,9 @@ namespace BALL - if (boost::out_degree(vertex, graph_) <= 1) - return IS_SIMPLICIAL; - -- VertexType* n1 = NULL; -- VertexType* n2 = NULL; -+ VertexType n1 = VertexType(); -+ VertexType n2 = VertexType(); -+ bool found_unconnected = false; - - typename boost::graph_traits<UndirectedGraph>::adjacency_iterator a_i, a_j, ai_end; - -@@ -337,20 +366,21 @@ namespace BALL - - if (!boost::edge(i, j, graph_).second) - { -- if (!n1) -+ if (!found_unconnected) - { -- n1 = &i; -- n2 = &j; -+ n1 = i; -+ n2 = j; -+ found_unconnected = true; - } -- else if (i == *n1 || i == *n2) -+ else if (i == n1 || i == n2) - { -- n1 = &i; -- n2 = &i; -+ n1 = i; -+ n2 = i; - } -- else if (j == *n1 || j == *n2) -+ else if (j == n1 || j == n2) - { -- n1 = &j; -- n2 = &j; -+ n1 = j; -+ n2 = j; - } - else - { -@@ -376,11 +406,10 @@ namespace BALL - { - Size nxt = cstate.permutation.size(); - -- std::map<int, VertexType> index_to_vertex; - BGL_FORALL_VERTICES_T(current_vertex, graph_, UndirectedGraph) - { - Size index = boost::get(boost::vertex_index, graph_, current_vertex); -- index_to_vertex[index] = current_vertex; -+ index_to_vertex_[index] = current_vertex; - SIMPLICIAL_TYPE simplicial(isSimplicial(current_vertex)); - if (simplicial == IS_SIMPLICIAL || simplicial == ALMOST_SIMPLICIAL) - { -@@ -388,14 +417,13 @@ namespace BALL - } - } - -- -- for (typename std::vector<Size>::const_iterator st_iter = cstate.permutation.begin() + nxt; -- st_iter != cstate.permutation.end(); ++st_iter) -+ for (typename std::vector<Size>::const_iterator st_iter = cstate.permutation.begin() + nxt; -+ st_iter != cstate.permutation.end(); -+ ++st_iter) - { -- VertexType vertex = index_to_vertex[*st_iter]; -+ VertexType vertex = index_to_vertex_[*st_iter]; - cstate.g = std::max(cstate.g, (Size)boost::out_degree(vertex, graph_)); - cstate.f = std::max(cstate.f, cstate.g); -- - GRAPH::eliminateVertex(vertex, graph_); - } - } -@@ -459,55 +487,62 @@ namespace BALL - { - upper_bound = nstate.f; - state.permutation = nstate.permutation; -- state.permutation.push_back(0); -+ BGL_FORALL_VERTICES_T(v, graph_, UndirectedGraph) // yes, it is only one, but still... -+ { -+ state.permutation.push_back(boost::get(boost::vertex_index, graph_, v)); -+ } - } - } - else - { -- std::map<int, VertexType> index_to_vertex; -+ index_to_vertex_.clear(); - BGL_FORALL_VERTICES_T(v, graph_, UndirectedGraph) - { -- index_to_vertex[boost::get(boost::vertex_index, graph_, v)] = v; -+ index_to_vertex_[boost::get(boost::vertex_index, graph_, v)] = v; - } - - for (typename std::vector<Size>::iterator viter = greedy_solution.first.begin(); - viter != greedy_solution.first.end(); ++viter) - { -- VertexType& vertex = index_to_vertex[*viter]; -- Size degree = boost::out_degree(vertex, graph_); -- -- GRAPH::UndoEliminateOperation<UndirectedGraph> elimination(graph_, vertex); -- -- QuickBBState xstate(nstate); -- xstate.g = std::max(nstate.g, degree); -- xstate.permutation.push_back(boost::get(boost::vertex_index, graph_, vertex)); -- -- BitSet bitset(buildBitset()); -- -- Size lower_bound = L()(graph_); -- xstate.h = lower_bound; -- xstate.f = max(xstate.g, lower_bound); -- -- if (xstate.f >= upper_bound) -- { -- elimination.undo(); -- -- continue; -- } -- -- MapPos entry(visitedSubgraphs.insert(MapEntry(bitset, xstate.f))); -- -- if (entry.second) -- { -- branchAndBound(xstate); -- } -- else if ((entry.first)->second > xstate.f) -+ if (index_to_vertex_.find(*viter) != index_to_vertex_.end()) - { -- entry.first->second = xstate.f; -- branchAndBound(xstate); -+ VertexType& vertex = index_to_vertex_[*viter]; -+ Size degree = boost::out_degree(vertex, graph_); -+ -+ GRAPH::UndoEliminateOperation<UndirectedGraph> elimination = GRAPH::eliminateVertexUndoable(vertex, graph_); -+ -+ QuickBBState xstate(nstate); -+ xstate.g = std::max(nstate.g, degree); -+ xstate.permutation.push_back(*viter); -+ -+ BitSet bitset(buildBitset()); -+ -+ Size lower_bound = L()(graph_); -+ xstate.h = lower_bound; -+ xstate.f = max(xstate.g, lower_bound); -+ -+ if (xstate.f >= upper_bound) -+ { -+ VertexType vertex_replace = elimination.undo(); -+ index_to_vertex_[*viter] = vertex_replace; -+ continue; -+ } -+ -+ MapPos entry(visitedSubgraphs.insert(MapEntry(bitset, xstate.f))); -+ -+ if (entry.second) -+ { -+ branchAndBound(xstate); -+ } -+ else if ((entry.first)->second > xstate.f) -+ { -+ entry.first->second = xstate.f; -+ branchAndBound(xstate); -+ } -+ -+ VertexType vertex_replace = elimination.undo(); -+ index_to_vertex_[*viter] = vertex_replace; - } -- -- elimination.undo(); - } - } - } -@@ -687,7 +722,7 @@ namespace BALL - typename TreeWidth<OriginalGraphType>::TreeDecompositionBag - TreeWidthImplementation<UndirectedGraph>::TreeDecompositionBuilder<OriginalGraphType>::buildRoot_(TreeDecompositionBag child) - { -- TreeDecompositionBag last_vertex; -+ TreeDecompositionBag last_vertex = TreeDecompositionBag(); - - TreeDecompositionContent content = boost::get(boost::vertex_bag_content, *nice_tree_, child); - -diff --git a/source/DATATYPE/GRAPH/treeWidth.C b/source/DATATYPE/GRAPH/treeWidth.C -index 981605d..7485305 100644 ---- a/source/DATATYPE/GRAPH/treeWidth.C -+++ b/source/DATATYPE/GRAPH/treeWidth.C -@@ -1 +1,25 @@ - #include <BALL/DATATYPE/GRAPH/treeWidth.h> -+ -+#include <BALL/KERNEL/atom.h> -+ -+namespace BALL -+{ -+ template <> -+ void TreeWidth<MolecularGraph>::BagContentWriter::operator() (std::ostream& out, const TreeDecompositionBag& v) const -+ { -+ out << "[label=\""; -+ -+ // find all vertices in the current bag -+ TreeDecompositionContent content = boost::get(boost::vertex_bag_content, *td_, v); -+ -+ for (typename TreeDecompositionContent::const_iterator tdc_it = content.begin(); tdc_it != content.end(); ++tdc_it) -+ { -+ TreeWidth<MolecularGraph>::OriginalVertexType ov = *tdc_it; -+ Atom const* atom = boost::get(boost::vertex_atom_ptr, *original_graph_, ov); -+ -+ out << atom->getFullName() << " (" << atom << ") " << "\\n"; -+ } -+ -+ out << "\"]"; -+ } -+} -diff --git a/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C b/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -index 4f872ae..c708535 100644 ---- a/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -+++ b/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -@@ -68,7 +68,7 @@ namespace BALL - for (Position i = 0; i < ntds.size(); ++i) - { - bond_assignments.push_back(new FPTBondOrderAssignment_(*this, ntds[i], upper_bound_)); -- Penalty result = bond_assignments[i]->compute(); -+ bond_assignments[i]->compute(); - } - - // initialize backtracking -@@ -650,8 +650,8 @@ namespace BALL - { - Edge e = *it; - -- MolecularGraphTraits::VertexType source = boost::source(*it, *molecule_); -- MolecularGraphTraits::VertexType target = boost::target(*it, *molecule_); -+ MolecularGraphTraits::VertexType source = boost::source(e, *molecule_); -+ MolecularGraphTraits::VertexType target = boost::target(e, *molecule_); - - if (iv == source || iv == target) - { -@@ -1893,8 +1893,7 @@ namespace BALL - - BGL_FORALL_EDGES(edge_it, graph, MolecularGraph) - { -- if (boost::source(edge_it, graph) < boost::target(edge_it, graph)) -- sorted_edges.push_back(edge_it); -+ sorted_edges.push_back(edge_it); - } - - // sort bonds - the second vertex could be in false order -@@ -1927,8 +1926,7 @@ namespace BALL - - BGL_FORALL_EDGES(edge_it, graph, MolecularGraph) - { -- if (boost::source(edge_it, graph) < boost::target(edge_it, graph)) -- sorted_edges.push_back(edge_it); -+ sorted_edges.push_back(edge_it); - } - - // sort bonds - the second vertex could be in false order diff --git a/sci-chemistry/ball/files/ball-1.4.1-gcc-4.7.patch b/sci-chemistry/ball/files/ball-1.4.1-gcc-4.7.patch deleted file mode 100644 index 6ab98729a83e..000000000000 --- a/sci-chemistry/ball/files/ball-1.4.1-gcc-4.7.patch +++ /dev/null @@ -1,592 +0,0 @@ - include/BALL/COMMON/global.h | 26 +++++------ - include/BALL/COMMON/hash.h | 36 +++++++-------- - include/BALL/DATATYPE/bitVector.h | 2 +- - include/BALL/DATATYPE/hashMap.h | 9 +--- - include/BALL/DATATYPE/string.h | 11 +++-- - include/BALL/DATATYPE/string.iC | 5 ++ - include/BALL/SYSTEM/binaryFileAdaptor.h | 53 +++++++++++----------- - source/COMMON/exception.C | 6 +-- - source/COMMON/hash.C | 2 +- - source/COMMON/init.C | 4 +- - source/COMMON/logStream.C | 6 +-- - source/COMMON/version.C | 2 +- - source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C | 41 +++++++++-------- - source/STRUCTURE/kekulizer.C | 8 ++-- - source/TEST/INIFile_test.C | 8 ++-- - source/TEST/ParameterSection_test.C | 2 +- - 16 files changed, 114 insertions(+), 107 deletions(-) - -diff --git a/include/BALL/COMMON/global.h b/include/BALL/COMMON/global.h -index 11d9246..02c81c6 100644 ---- a/include/BALL/COMMON/global.h -+++ b/include/BALL/COMMON/global.h -@@ -9,7 +9,7 @@ - # include <BALL/CONFIG/config.h> - #endif - --#include <limits.h> -+#include <limits> - #include <time.h> - - #ifdef BALL_HAS_BASETSD_H -@@ -223,28 +223,28 @@ namespace BALL - ASCII__SEMICOLON = ';' - }; - -- static const Distance INVALID_DISTANCE = INT_MIN; -- static const Distance DISTANCE_MIN = (INT_MIN + 1); -- static const Distance DISTANCE_MAX = INT_MAX; -+ static const Distance INVALID_DISTANCE = std::numeric_limits<Distance>::max(); -+ static const Distance DISTANCE_MIN = (std::numeric_limits<Distance>::min() + 1); -+ static const Distance DISTANCE_MAX = std::numeric_limits<Distance>::max(); - -- static const Handle INVALID_HANDLE = INT_MAX; -+ static const Handle INVALID_HANDLE = std::numeric_limits<Handle>::max(); - static const Handle HANDLE_MIN = 0 ; -- static const Handle HANDLE_MAX = INT_MAX - 1; -+ static const Handle HANDLE_MAX = std::numeric_limits<Handle>::max() - 1; - - static const Index INVALID_INDEX = -1; - static const Index INDEX_MIN = 0; -- static const Index INDEX_MAX = INT_MAX; -+ static const Index INDEX_MAX = std::numeric_limits<Index>::max(); - -- static const Position INVALID_POSITION = INT_MAX; -+ static const Position INVALID_POSITION = std::numeric_limits<Position>::max(); - static const Position POSITION_MIN = 0; -- static const Position POSITION_MAX = INT_MAX - 1; -+ static const Position POSITION_MAX = std::numeric_limits<Position>::max() - 1; - - # undef SIZE_MAX -- static const Size INVALID_SIZE = INT_MAX; -+ static const Size INVALID_SIZE = std::numeric_limits<Size>::max(); - static const Size SIZE_MIN = 0; -- static const Size SIZE_MAX = INT_MAX - 1; -- -- -+ static const Size SIZE_MAX = std::numeric_limits<Size>::max() - 1; -+ -+ - } - - #endif // BALL_COMMON_GLOBAL_H -diff --git a/include/BALL/COMMON/hash.h b/include/BALL/COMMON/hash.h -index 8d45df3..ebb9a55 100644 ---- a/include/BALL/COMMON/hash.h -+++ b/include/BALL/COMMON/hash.h -@@ -15,24 +15,6 @@ - - namespace BALL - { -- /** General Hash Function Template. -- This template function provides a simple wrapper -- for the specialized hash functions. It facilitates their use -- in STL hash associative containers which expect a <b>Hasher</b> -- class as template parameter. -- \ingroup Common -- */ -- template <typename T> -- class HashFunction -- { -- public: -- -- HashIndex operator () (const T& t) const -- { -- return Hash(t); -- } -- }; -- - /** @name Specialized Hash Functions. - */ - //@{ -@@ -105,6 +87,24 @@ namespace BALL - - //@} - -+ /** General Hash Function Template. -+ This template function provides a simple wrapper -+ for the specialized hash functions. It facilitates their use -+ in STL hash associative containers which expect a <b>Hasher</b> -+ class as template parameter. -+ \ingroup Common -+ */ -+ template <typename T> -+ class HashFunction -+ { -+ public: -+ -+ HashIndex operator () (const T& t) const -+ { -+ return Hash(t); -+ } -+ }; -+ - } // namespace BALL - - #endif // BALL_COMMON_HASH_H -diff --git a/include/BALL/DATATYPE/bitVector.h b/include/BALL/DATATYPE/bitVector.h -index 991f08e..dc7ead6 100644 ---- a/include/BALL/DATATYPE/bitVector.h -+++ b/include/BALL/DATATYPE/bitVector.h -@@ -18,7 +18,7 @@ - #endif - - --#include <string.h> -+#include <cstring> - - #define BALL_BLOCK_BITS 8 - #define BALL_BLOCK_MASK (BALL_BLOCK_BITS - 1) -diff --git a/include/BALL/DATATYPE/hashMap.h b/include/BALL/DATATYPE/hashMap.h -index 329db2b..f185b8c 100644 ---- a/include/BALL/DATATYPE/hashMap.h -+++ b/include/BALL/DATATYPE/hashMap.h -@@ -236,7 +236,7 @@ namespace BALL - template <class Key, class T> - const T& HashMap<Key, T>::operator [] (const Key& key) const - { -- ConstIterator it = find(key); -+ ConstIterator it = this->find(key); - if (it == Base::end()) - { - throw IllegalKey(__FILE__, __LINE__); -@@ -272,12 +272,7 @@ namespace BALL - T& HashMap<Key, T>::operator [] (const Key& key) - - { -- Iterator it = find(key); -- if (it == Base::end()) -- { -- it = insert(ValueType(key, T())).first; -- } -- return it->second; -+ return BALL_MAP_NAME::operator[] (key); - } - - } // namespace BALL -diff --git a/include/BALL/DATATYPE/string.h b/include/BALL/DATATYPE/string.h -index 1172180..aa11c35 100644 ---- a/include/BALL/DATATYPE/string.h -+++ b/include/BALL/DATATYPE/string.h -@@ -27,10 +27,10 @@ - #endif - - #include <string> --#include <ctype.h> --#include <errno.h> --#include <stdlib.h> --#include <string.h> -+#include <cctype> -+#include <cerrno> -+#include <cstdlib> -+#include <cstring> - #include <iostream> - #include <vector> - -@@ -155,6 +155,9 @@ namespace BALL - /// STL string copy constructor - String(const string& string); - -+ /// Copy constructor -+ String(const String& s); -+ - #ifdef BALL_STD_STRING_HAS_RVALUE_REFERENCES - /// Move constructor - String(String&& s); -diff --git a/include/BALL/DATATYPE/string.iC b/include/BALL/DATATYPE/string.iC -index b255849..c347588 100644 ---- a/include/BALL/DATATYPE/string.iC -+++ b/include/BALL/DATATYPE/string.iC -@@ -8,6 +8,11 @@ String::String() - { - } - -+BALL_INLINE String::String(const String& s) -+ : string(s) -+{ -+} -+ - #ifdef BALL_STD_STRING_HAS_RVALUE_REFERENCES - BALL_INLINE - String::String(String&& s) -diff --git a/include/BALL/SYSTEM/binaryFileAdaptor.h b/include/BALL/SYSTEM/binaryFileAdaptor.h -index 64f0f5d..6488e18 100644 ---- a/include/BALL/SYSTEM/binaryFileAdaptor.h -+++ b/include/BALL/SYSTEM/binaryFileAdaptor.h -@@ -10,6 +10,33 @@ - - namespace BALL - { -+ /** Coping with endianness. This function swaps the bytes of a variable -+ of type T if this type is of size 2n. -+ */ -+ template <typename T> -+ void swapBytes(T& t) -+ { -+ if (sizeof(T) % 2 != 0) -+ { -+ Log.error() << "Cannot swap types of uneven size." << std::endl; -+ return; -+ } -+ -+ char* tmp = reinterpret_cast<char*>(&t); -+ std::reverse(tmp, tmp + sizeof(T)); -+ } -+ -+ //In the following some specialisations of swapBytes are provided for efficiency reasons -+ //These should also cover BALL types like Size, Position and Index -+ template<> BALL_EXPORT void swapBytes(unsigned short&); -+ template<> BALL_EXPORT void swapBytes(short&); -+ template<> BALL_EXPORT void swapBytes(unsigned int&); -+ template<> BALL_EXPORT void swapBytes(int&); -+ template<> BALL_EXPORT void swapBytes(unsigned long&); -+ template<> BALL_EXPORT void swapBytes(long&); -+ template<> BALL_EXPORT void swapBytes(float&); -+ template<> BALL_EXPORT void swapBytes(double&); -+ - /** - * Helper class for data conversion. - * BinaryFileAdaptors are used to read and write binary data from and to -@@ -152,32 +179,6 @@ namespace BALL - return is; - } - -- /** Coping with endianness. This function swaps the bytes of a variable -- of type T if this type is of size 2n. -- */ -- template <typename T> -- void swapBytes(T& t) -- { -- if (sizeof(T) % 2 != 0) -- { -- Log.error() << "Cannot swap types of uneven size." << std::endl; -- return; -- } -- -- char* tmp = reinterpret_cast<char*>(&t); -- std::reverse(tmp, tmp + sizeof(T)); -- } -- -- //In the following some specialisations of swapBytes are provided for efficiency reasons -- //These should also cover BALL types like Size, Position and Index -- template<> BALL_EXPORT void swapBytes(unsigned short&); -- template<> BALL_EXPORT void swapBytes(short&); -- template<> BALL_EXPORT void swapBytes(unsigned int&); -- template<> BALL_EXPORT void swapBytes(int&); -- template<> BALL_EXPORT void swapBytes(unsigned long&); -- template<> BALL_EXPORT void swapBytes(long&); -- template<> BALL_EXPORT void swapBytes(float&); -- template<> BALL_EXPORT void swapBytes(double&); - } //namespace BALL - - #ifndef BALL_NO_INLINE_FUNCTIONS -diff --git a/source/COMMON/exception.C b/source/COMMON/exception.C -index e7855ce..464f971 100644 ---- a/source/COMMON/exception.C -+++ b/source/COMMON/exception.C -@@ -9,10 +9,10 @@ - #include <iostream> - #include <typeinfo> - #include <exception> --#include <stdio.h> --#include <stdlib.h> // for getenv in terminate() -+#include <cstdio> -+#include <cstdlib> // for getenv in terminate() - #include <sys/types.h> --#include <signal.h> // for SIGSEGV and kill -+#include <csignal> // for SIGSEGV and kill - - #ifdef BALL_HAS_UNISTD_H - # include <unistd.h> // fot getpid -diff --git a/source/COMMON/hash.C b/source/COMMON/hash.C -index 0d81493..ffe75de 100644 ---- a/source/COMMON/hash.C -+++ b/source/COMMON/hash.C -@@ -72,7 +72,7 @@ namespace BALL - Index index = 0; - Index temp_index; - --# define BALL_BITS_IN_HASHVALUE_ (sizeof(Index) * CHAR_BIT) -+# define BALL_BITS_IN_HASHVALUE_ (sizeof(Index) * std::numeric_limits<unsigned char>::digits) - # define BALL_THREE_QUARTERS_ ((Index)((BALL_BITS_IN_HASHVALUE_ * 3) / 4)) - # define BALL_ONE_EIGHTH_ ((Index)(BALL_BITS_IN_HASHVALUE_ / 8)) - # define BALL_HIGH_BITS_ (~((Index)(~0) >> BALL_ONE_EIGHTH_)) -diff --git a/source/COMMON/init.C b/source/COMMON/init.C -index d426756..856fe68 100644 ---- a/source/COMMON/init.C -+++ b/source/COMMON/init.C -@@ -4,8 +4,8 @@ - - #include <BALL/COMMON/init.h> - --#include <locale.h> --#include <stdlib.h> -+#include <clocale> -+#include <cstdlib> - - namespace BALL - { -diff --git a/source/COMMON/logStream.C b/source/COMMON/logStream.C -index 12b9184..0340e24 100644 ---- a/source/COMMON/logStream.C -+++ b/source/COMMON/logStream.C -@@ -26,9 +26,9 @@ namespace BALL - // at this point, it is not yet possible to - // include BALL/COMMON/limits.h (which were a - // much nicer solution...). Ugly header dependencies... -- const int LogStreamBuf::MIN_LEVEL = INT_MIN; -- const int LogStreamBuf::MAX_LEVEL = INT_MAX; -- const Time LogStreamBuf::MAX_TIME = INT_MAX; -+ const int LogStreamBuf::MIN_LEVEL = std::numeric_limits<int>::min(); -+ const int LogStreamBuf::MAX_LEVEL = std::numeric_limits<int>::max(); -+ const Time LogStreamBuf::MAX_TIME = std::numeric_limits<Time>::max(); - - LogStreamBuf::LogStreamBuf() - : std::streambuf(), -diff --git a/source/COMMON/version.C b/source/COMMON/version.C -index 1a0987b..15c9d87 100644 ---- a/source/COMMON/version.C -+++ b/source/COMMON/version.C -@@ -12,7 +12,7 @@ namespace BALL - { - const char* VersionInfo::getVersion() - { -- return BALL_RELEASE_STRING " ("__DATE__", " __TIME__ ")"; -+ return BALL_RELEASE_STRING " (" __DATE__ ", " __TIME__ ")"; - } - - int VersionInfo::getMinorRevision() -diff --git a/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C b/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -index 89a1f68..4f872ae 100644 ---- a/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -+++ b/source/STRUCTURE/BONDORDERS/FPTBondOrderStrategy.C -@@ -323,7 +323,7 @@ namespace BALL - } - } - -- return *best; -+ return DPConstRow_(boost::reference_wrapper<DPConfig_ const>(best->first), best->second); - } - - FPTBondOrderStrategy::Penalty FPTBondOrderStrategy::DPTable_::operator[](FPTBondOrderStrategy::DPConfig_ const& config) const -@@ -602,6 +602,9 @@ namespace BALL - - return bonds; - } -+ -+#define convertToCRow(tmp)\ -+ std::make_pair(boost::reference_wrapper<const DPConfig_>((tmp).first), (tmp).second) - - void FPTBondOrderStrategy::FPTBondOrderAssignment_::computeIntroduceBag(TreeDecompositionBag& bag, DPTable_& child, - AdditionalBagProperties_& property) -@@ -622,7 +625,7 @@ namespace BALL - // copy with n new bondvalue-columns with different values - for (DPTable_::const_iterator iter = child.begin(); iter != child.end(); ++iter) - { -- DPConstRow_ child_entry = *iter; -+ DPConstRow_ child_entry = convertToCRow(*iter); - DPConfig_ conf(num_valences, num_bonds); - - Size vindex = 0; -@@ -787,7 +790,7 @@ namespace BALL - - for (DPTable_::const_iterator entry_iterator = child.begin(); entry_iterator != child.end(); ++entry_iterator) - { -- Penalty entry_penalty(forgetInnerVertexIn(bag, *entry_iterator, new_entry, child_property.bonds, forgotten_index)); -+ Penalty entry_penalty(forgetInnerVertexIn(bag, convertToCRow(*entry_iterator), new_entry, child_property.bonds, forgotten_index)); - if (entry_penalty < upper_bound_) - { - property.table->insert(new_entry, entry_penalty); -@@ -804,7 +807,7 @@ namespace BALL - Penalty min_penalty = FPTBondOrderStrategy::infinite_penalty; - for (DPTable_::const_iterator iter = child.begin(); iter != child.end(); ++iter) - { -- min_penalty = std::min(min_penalty, forgetInnerVertexIn(bag, *iter, empty, empty_list, 0)); -+ min_penalty = std::min(min_penalty, forgetInnerVertexIn(bag, convertToCRow(*iter), empty, empty_list, 0)); - - if (Maths::isEqual(0, min_penalty)) - { -@@ -830,17 +833,17 @@ namespace BALL - // insert each entry of the left child into a DPJoinMap - for (DPTable_::const_iterator left_iter = left_child.begin(); left_iter != left_child.end(); ++left_iter) - { -- DPConstRow_ left_entry = *left_iter; -- map.insert(pair<DPConfig_ const*, Penalty> (left_entry.first.get_pointer(), left_entry.second)); -+ DPConstRow_ left_entry = convertToCRow(*left_iter); -+ map.insert(std::pair<DPConfig_ const*, Penalty> (left_entry.first.get_pointer(), left_entry.second)); - } - - // find for each entry of the right child's table appropiate entries in the DPJoinMap (which have the same bondvalues) - for (DPTable_::const_iterator r_iter = right_child.begin(); r_iter != right_child.end(); ++r_iter) - { -- DPConstRow_ right_entry = *r_iter; -+ DPConstRow_ right_entry = convertToCRow(*r_iter); - DPConfig_ const* right_conf = right_entry.first.get_pointer(); - -- pair<DPJoinMap_::const_iterator, DPJoinMap_::const_iterator> matching_range(map.equal_range(right_conf)); -+ std::pair<DPJoinMap_::const_iterator, DPJoinMap_::const_iterator> matching_range(map.equal_range(right_conf)); - - for (DPJoinMap_::const_iterator match = matching_range.first; - match != matching_range.second; ++match) -@@ -1441,7 +1444,7 @@ namespace BALL - delete current_state_; - } - -- multiset<BackTrackingState_*, StateComparator_>::iterator first = queue_.begin(); -+ std::multiset<BackTrackingState_*, StateComparator_>::iterator first = queue_.begin(); - current_state_ = *first; - queue_.erase(first); - --max_heap_size_; -@@ -1598,7 +1601,7 @@ namespace BALL - // insert possible antecessors in vectors - for (DPTable_::const_iterator iter = left_table.begin(); iter != left_table.end(); ++iter) - { -- DPConstRow_ antecessor = *iter; -+ DPConstRow_ antecessor = convertToCRow(*iter); - if (comp.compare(&successor, antecessor.first.get_pointer()) == 0) - { - left_entries.push_back(iter); -@@ -1607,7 +1610,7 @@ namespace BALL - - for (DPTable_::const_iterator iter = right_table.begin(); iter != right_table.end(); ++iter) - { -- DPConstRow_ antecessor = *iter; -+ DPConstRow_ antecessor = convertToCRow(*iter); - if (comp.compare(&successor, antecessor.first.get_pointer()) == 0) - { - right_entries.push_back(iter); -@@ -1619,10 +1622,10 @@ namespace BALL - - for (std::vector<DPTable_::const_iterator>::const_iterator left = left_entries.begin(); left != left_entries.end(); ++left) - { -- DPConstRow_ left_entry = **left; -+ DPConstRow_ left_entry = convertToCRow(**left); - for (std::vector<DPTable_::const_iterator>::const_iterator right = right_entries.begin(); right != right_entries.end(); ++right) - { -- DPConstRow_ right_entry = **right; -+ DPConstRow_ right_entry = convertToCRow(**right); - - // check sum of valences - bool correct_valences = true; -@@ -1653,8 +1656,8 @@ namespace BALL - - Penalty best_penalty = best.first->second + best.second->second; - -- DPConstRow_ left = *best.first; -- DPConstRow_ right = *best.second; -+ DPConstRow_ left = convertToCRow(*best.first); -+ DPConstRow_ right = convertToCRow(*best.second); - - extendState(state, left.first, 0); - ++state.index; -@@ -1664,8 +1667,8 @@ namespace BALL - { - DPPairIt_ entry = *iter; - -- DPConstRow_ left = *entry.first; -- DPConstRow_ right = *entry.second; -+ DPConstRow_ left = convertToCRow(*entry.first); -+ DPConstRow_ right = convertToCRow(*entry.second); - - Penalty add_penalty = (left.second + right.second) - best_penalty; - if (isSolutionNeeded(state.assignment.penalty + add_penalty)) -@@ -1716,7 +1719,7 @@ namespace BALL - // check for each row entry: is it a possible anteccessor? - for (DPTable_::iterator iter = table.begin(); iter != table.end(); ++iter) - { -- Penalty pen = bond_assignment_->forgetInnerVertexIn(bag, *iter, test_entry, child_bonds, forgotten_index); -+ Penalty pen = bond_assignment_->forgetInnerVertexIn(bag, convertToCRow(*iter), test_entry, child_bonds, forgotten_index); - - if (pen < FPTBondOrderStrategy::infinite_penalty && test_entry == successor) - { -@@ -1783,7 +1786,7 @@ namespace BALL - { - while (queue_.size() > max_heap_size_) - { -- multiset<BackTrackingState_*, StateComparator_>::iterator pos = queue_.end(); -+ std::multiset<BackTrackingState_*, StateComparator_>::iterator pos = queue_.end(); - --pos; - delete *pos; - queue_.erase(pos); -diff --git a/source/STRUCTURE/kekulizer.C b/source/STRUCTURE/kekulizer.C -index d1f4e78..c277091 100644 ---- a/source/STRUCTURE/kekulizer.C -+++ b/source/STRUCTURE/kekulizer.C -@@ -266,7 +266,7 @@ void Kekuliser::dump() - Log.error() << partner->getName() << " "; - } - Log.error() << " " << current_penalty_; -- if (lowest_penalty_ != INT_MAX) Log.error() << " + " << lowest_penalty_; -+ if (lowest_penalty_ != std::numeric_limits<int>::max()) Log.error() << " + " << lowest_penalty_; - Log.error() << std::endl; - } - } -@@ -415,11 +415,11 @@ bool Kekuliser::fixAromaticRings_() - #endif - - solutions_.clear(); -- lowest_penalty_ = INT_MAX; -+ lowest_penalty_ = std::numeric_limits<int>::max(); - current_penalty_ = 0; - fixAromaticSystem_(0); - // test could be changed to achieve at most a given max value: -- if (lowest_penalty_ < INT_MAX) -+ if (lowest_penalty_ < std::numeric_limits<int>::max()) - { - if (lowest_penalty_ == 0) - { -@@ -765,7 +765,7 @@ void Kekuliser::applySolution_(Position pos) - // return the best solution - Position Kekuliser::calculateDistanceScores_() - { -- float best_score = INT_MAX; -+ float best_score = std::numeric_limits<int>::max(); - Size best_solution = 0; - - for (Position solp = 0; solp < solutions_.size(); solp++) -diff --git a/source/TEST/INIFile_test.C b/source/TEST/INIFile_test.C -index 1f59d2c..cf37841 100644 ---- a/source/TEST/INIFile_test.C -+++ b/source/TEST/INIFile_test.C -@@ -198,10 +198,10 @@ CHECK(bool appendLine(const String& section_name, const String& line)) - - CAPTURE_OUTPUT_LEVEL(2000) - TEST_EQUAL(ini.appendLine("Section9", "GAU"), false) -- COMPARE_OUTPUT("In INIFile "BALL_TEST_DATA_PATH(INIFile_test.ini)" , error while appending line: GAU . Illegal section-name: Section9\n") -+ COMPARE_OUTPUT("In INIFile " BALL_TEST_DATA_PATH(INIFile_test.ini)" , error while appending line: GAU . Illegal section-name: Section9\n") - CAPTURE_OUTPUT_LEVEL(2000) - TEST_EQUAL(ini.appendLine("Section2", "[AU"), false) -- COMPARE_OUTPUT("In INIFile "BALL_TEST_DATA_PATH(INIFile_test.ini)" , error while appending line: [AU . Illegal section-name: Section2\n") -+ COMPARE_OUTPUT("In INIFile " BALL_TEST_DATA_PATH(INIFile_test.ini)" , error while appending line: [AU . Illegal section-name: Section2\n") - TEST_EQUAL(ini.appendLine("Section3", "test1 = 123"), true) - TEST_EQUAL(*ini.getLine(9), "test1 = 123") - TEST_EQUAL(ini.getNumberOfLines(), 11) -@@ -403,13 +403,13 @@ CHECK(bool appendSection(const String& section)) - TEST_EQUAL(ini.hasSection(ini.HEADER), true) - CAPTURE_OUTPUT_LEVEL(2000) - TEST_EQUAL(ini.appendSection(ini.HEADER), false) -- const char* output = "INIFile::appendSection: "BALL_TEST_DATA_PATH(INIFile_test.ini)" , while adding section: '#HEADER!' already exists.\n"; -+ const char* output = "INIFile::appendSection: " BALL_TEST_DATA_PATH(INIFile_test.ini)" , while adding section: '#HEADER!' already exists.\n"; - COMPARE_OUTPUT(output) - TEST_EQUAL(ini.getNumberOfLines(), 10) - - CAPTURE_OUTPUT_LEVEL(2000) - TEST_EQUAL(ini.appendSection("Section1"), false) -- COMPARE_OUTPUT("INIFile::appendSection: "BALL_TEST_DATA_PATH(INIFile_test.ini)" , while adding section: 'Section1' already exists.\n") -+ COMPARE_OUTPUT("INIFile::appendSection: " BALL_TEST_DATA_PATH(INIFile_test.ini)" , while adding section: 'Section1' already exists.\n") - TEST_EQUAL(ini.getNumberOfLines(), 10) - TEST_EQUAL(ini.hasSection("Section1"), true) - -diff --git a/source/TEST/ParameterSection_test.C b/source/TEST/ParameterSection_test.C -index 16424cd..b934b4a 100644 ---- a/source/TEST/ParameterSection_test.C -+++ b/source/TEST/ParameterSection_test.C -@@ -55,7 +55,7 @@ CHECK(ParameterSection::extractSection(Parameters& parameters, const String& sec - bool result; - CAPTURE_OUTPUT_LEVEL(2000) - result = ps.extractSection(param, "Section1"); -- COMPARE_OUTPUT("ParameterSection::extractSection: error reading section Section1 of file "BALL_TEST_DATA_PATH(ParameterSection_test.ini)":\nWrong number of fields in the format line: 0. FORMAT:\n") -+ COMPARE_OUTPUT("ParameterSection::extractSection: error reading section Section1 of file " BALL_TEST_DATA_PATH(ParameterSection_test.ini)":\nWrong number of fields in the format line: 0. FORMAT:\n") - TEST_EQUAL(result, false) - TEST_EQUAL(ps.getSectionName(), "Section1") - diff --git a/sci-chemistry/ball/files/ball-1.4.1-libsvm.patch b/sci-chemistry/ball/files/ball-1.4.1-libsvm.patch deleted file mode 100644 index c85506d72733..000000000000 --- a/sci-chemistry/ball/files/ball-1.4.1-libsvm.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 60a5f677587046b3e2077872c21b005bad549b85 Mon Sep 17 00:00:00 2001 -Message-Id: <60a5f677587046b3e2077872c21b005bad549b85.1332678065.git.jlec@gentoo.org> -From: Justin Lecher <jlec@gentoo.org> -Date: Sun, 25 Mar 2012 14:15:16 +0200 -Subject: [PATCH 1/2] Correct deprecated usage of svm_destroy_model to - svm_free_and_destroy_model - ---- - source/QSAR/libsvmModel.C | 2 +- - 1 files changed, 1 insertions(+), 1 deletions(-) - -diff --git a/source/QSAR/libsvmModel.C b/source/QSAR/libsvmModel.C -index 58ce4dc..1f24e15 100644 ---- a/source/QSAR/libsvmModel.C -+++ b/source/QSAR/libsvmModel.C -@@ -81,7 +81,7 @@ void LibsvmModel::train() - - //free(prob); - //free(prob->y); free(prob->x); -- svm_destroy_model((::svm_model*)svm_train_result_); -+ svm_free_and_destroy_model((::svm_model**)svm_train_result_); - } - } - diff --git a/sci-chemistry/ball/files/ball-1.4.1-pthread.patch b/sci-chemistry/ball/files/ball-1.4.1-pthread.patch deleted file mode 100644 index 5ca9699dc7bd..000000000000 --- a/sci-chemistry/ball/files/ball-1.4.1-pthread.patch +++ /dev/null @@ -1,19 +0,0 @@ - CMakeLists.txt | 5 +++++ - 1 files changed, 5 insertions(+), 0 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index a68497f..264f321 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -426,6 +426,11 @@ LIST(APPEND BALL_DEP_LIBRARIES - ${PYTHON_LIBRARIES} - ) - -+ -+IF(UNIX) -+ LIST(APPEND BALL_DEP_LIBRARIES "pthread") -+ENDIF() -+ - IF(TBB_FOUND) - LIST(APPEND BALL_DEP_LIBRARIES ${TBB_LIBRARIES}) - ENDIF() diff --git a/sci-chemistry/ball/files/ball-1.4.1-python.patch b/sci-chemistry/ball/files/ball-1.4.1-python.patch deleted file mode 100644 index f7a235a3bd78..000000000000 --- a/sci-chemistry/ball/files/ball-1.4.1-python.patch +++ /dev/null @@ -1,82 +0,0 @@ - source/PYTHON/EXTENSIONS/BALL/file.sip | 2 +- - source/PYTHON/EXTENSIONS/BALL/periodicBoundary.sip | 4 ++-- - source/PYTHON/EXTENSIONS/VIEW/mainControl.sip | 2 +- - source/PYTHON/pyInterpreter.C | 9 +++++---- - 4 files changed, 9 insertions(+), 8 deletions(-) - -diff --git a/source/PYTHON/EXTENSIONS/BALL/file.sip b/source/PYTHON/EXTENSIONS/BALL/file.sip -index e29170a..6ec6dc4 100644 ---- a/source/PYTHON/EXTENSIONS/BALL/file.sip -+++ b/source/PYTHON/EXTENSIONS/BALL/file.sip -@@ -70,7 +70,7 @@ class File - // std::fstream& getFileStream(); - bool copyTo(const String&); - bool moveTo(const String&); -- bool remove() const; -+ bool remove(); - bool renameTo(const String&); - bool truncate(int) const; - bool operator == (const File& /file/) const; -diff --git a/source/PYTHON/EXTENSIONS/BALL/periodicBoundary.sip b/source/PYTHON/EXTENSIONS/BALL/periodicBoundary.sip -index 2b79778..46daade 100644 ---- a/source/PYTHON/EXTENSIONS/BALL/periodicBoundary.sip -+++ b/source/PYTHON/EXTENSIONS/BALL/periodicBoundary.sip -@@ -22,8 +22,8 @@ using namespace BALL; - void disable(); - SimpleBox3 getBox() const; - void setBox(const SimpleBox3&); -- int addSolvent(const String&) const; -- int removeSolvent() const; -+ int addSolvent(const String& /In/); -+ int removeSolvent(); - bool isEnabled() const; - void updateMolecules(); - Options* options; -diff --git a/source/PYTHON/EXTENSIONS/VIEW/mainControl.sip b/source/PYTHON/EXTENSIONS/VIEW/mainControl.sip -index 0a6c319..61d4596 100644 ---- a/source/PYTHON/EXTENSIONS/VIEW/mainControl.sip -+++ b/source/PYTHON/EXTENSIONS/VIEW/mainControl.sip -@@ -139,7 +139,7 @@ class MainControl - virtual void openFile(const String&) throw(); - void saveBALLViewProjectFile(const String&); - void loadBALLViewProjectFile(const String&) throw(); -- void quickSave() const; -+ void quickSave(); - void quickLoad(); - void processEvents(Size); - }; -diff --git a/source/PYTHON/pyInterpreter.C b/source/PYTHON/pyInterpreter.C -index 155a09f..7a12c33 100644 ---- a/source/PYTHON/pyInterpreter.C -+++ b/source/PYTHON/pyInterpreter.C -@@ -4,9 +4,9 @@ - // $Id: ball-1.4.1-python.patch,v 1.1 2012/03/25 14:13:39 jlec Exp $ - // - --#include <Python.h> -- - #include <BALL/PYTHON/pyInterpreter.h> -+#include <Python.h> -+ - #include <BALL/PYTHON/BALLPythonConfig.h> - - #include <BALL/FORMAT/lineBasedFile.h> -@@ -34,7 +34,6 @@ namespace BALL - PyObject* result = PyRun_String(const_cast<char*>(str.c_str()), mode, context_, context_); - if (PyErr_Occurred()) - { -- PyErr_Print(); - PyObject* type; - PyObject* value; - PyObject* range; -@@ -50,7 +49,9 @@ namespace BALL - { - error_message_ += " (error message could not be parsed)"; - } -- -+ -+ PyErr_Print(); -+ - error_message_ += "\n"; - - return 0; |