[med-svn] [Git][med-team/spoa][master] 9 commits: New upstream version 3.0.2
Michael R. Crusoe
gitlab at salsa.debian.org
Mon Apr 13 19:06:14 BST 2020
Michael R. Crusoe pushed to branch master at Debian Med / spoa
Commits:
d435cde5 by Michael R. Crusoe at 2020-04-13T18:40:17+02:00
New upstream version 3.0.2
- - - - -
e53d02b9 by Michael R. Crusoe at 2020-04-13T18:40:17+02:00
routine-update: New upstream version
- - - - -
83ace7d9 by Michael R. Crusoe at 2020-04-13T18:40:17+02:00
Update upstream source from tag 'upstream/3.0.2'
Update to upstream version '3.0.2'
with Debian dir 07e300f3d81a8920f3306df94de4c9f74e8b2240
- - - - -
c731c474 by Michael R. Crusoe at 2020-04-13T18:40:18+02:00
routine-update: Standards-Version: 4.5.0
- - - - -
4d00728e by Michael R. Crusoe at 2020-04-13T18:40:22+02:00
routine-update: Add salsa-ci file
- - - - -
4299cbbc by Michael R. Crusoe at 2020-04-13T18:40:23+02:00
routine-update: Rules-Requires-Root: no
- - - - -
9c3da5dc by Michael R. Crusoe at 2020-04-13T18:40:26+02:00
Set upstream metadata fields: Bug-Database, Bug-Submit, Repository, Repository-Browse.
- - - - -
c190bac8 by Michael R. Crusoe at 2020-04-13T20:04:01+02:00
Enable building on non x86-64 via SIMDe
- - - - -
c45ea459 by Michael R. Crusoe at 2020-04-13T20:04:01+02:00
release 3.0.2-1 to unstable
- - - - -
16 changed files:
- .travis.yml
- CMakeLists.txt
- README.md
- debian/changelog
- debian/control
- debian/libspoa3.symbols
- debian/patches/fix_soversion.patch
- debian/patches/series
- debian/patches/shared_and_static.patch
- + debian/patches/simde
- debian/patches/use_debian_packaged_libs.patch
- debian/rules
- + debian/salsa-ci.yml
- debian/upstream/metadata
- src/graph.cpp
- src/main.cpp
Changes:
=====================================
.travis.yml
=====================================
@@ -1,3 +1,5 @@
+dist: trusty
+
language: cpp
compiler:
=====================================
CMakeLists.txt
=====================================
@@ -14,9 +14,12 @@ set(CMAKE_CXX_EXTENSIONS OFF)
option(spoa_build_executable "Build spoa standalone tool" OFF)
option(spoa_build_tests "Build spoa unit tests" OFF)
-option(spoa_optimize_for_native "Buiold spoa with march=native" ON)
+option(spoa_optimize_for_native "Build spoa with -march=native" ON)
+option(spoa_optimize_for_portability "Build spoa with -msse4.1" OFF)
-if (spoa_optimize_for_native)
+if (spoa_optimize_for_portability)
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse4.1")
+elseif (spoa_optimize_for_native)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native")
endif()
=====================================
README.md
=====================================
@@ -161,7 +161,7 @@ On the other hand, if you are using `cmake` you can add spoa to your project by
## Contact information
-For additional information, help and bug reports please send an email to: robert.vaser at fer.hr.
+For additional information, help and bug reports please send an email to: robert.vaser at fer.hr, mile.sikic at fer.hr.
## Acknowledgement
=====================================
debian/changelog
=====================================
@@ -1,3 +1,16 @@
+spoa (3.0.2-1) unstable; urgency=medium
+
+ * Team upload.
+ * New upstream version
+ * Standards-Version: 4.5.0 (routine-update)
+ * Add salsa-ci file (routine-update)
+ * Rules-Requires-Root: no (routine-update)
+ * Set upstream metadata fields: Bug-Database, Bug-Submit, Repository,
+ Repository-Browse.
+ * Enable building on non x86-64 via SIMDe
+
+ -- Michael R. Crusoe <michael.crusoe at gmail.com> Mon, 13 Apr 2020 19:57:28 +0200
+
spoa (3.0.1-1) unstable; urgency=medium
* Fix symbols file
=====================================
debian/control
=====================================
@@ -9,14 +9,16 @@ Build-Depends: debhelper-compat (= 12),
rename,
libbioparser-dev (>= 2.0),
libgtest-dev,
- zlib1g-dev
-Standards-Version: 4.4.0
+ zlib1g-dev,
+ libsimde-dev
+Standards-Version: 4.5.0
Vcs-Browser: https://salsa.debian.org/med-team/spoa
Vcs-Git: https://salsa.debian.org/med-team/spoa.git
Homepage: https://github.com/rvaser/spoa
+Rules-Requires-Root: no
Package: spoa
-Architecture: amd64
+Architecture: any
Depends: ${shlibs:Depends},
${misc:Depends}
Description: SIMD partial order alignment tool
=====================================
debian/libspoa3.symbols
=====================================
@@ -1,9 +1,18 @@
libspoa.so.3 libspoa3 #MINVER#
+* Build-Depends-Package: libspoa-dev
_ZN4spoa11createGraphEv at Base 1.1.3
_ZN4spoa15AlignmentEngine5alignERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKSt10unique_ptrINS_5GraphESt14default_deleteISA_EE at Base 3.0.0
_ZN4spoa15AlignmentEngineC1ENS_13AlignmentTypeENS_16AlignmentSubtypeEaaaaaa at Base 3.0.0
_ZN4spoa15AlignmentEngineC2ENS_13AlignmentTypeENS_16AlignmentSubtypeEaaaaaa at Base 3.0.0
+ _ZN4spoa19SimdAlignmentEngine10initializeINS_14InstructionSetIiEEEEvPKcRKSt10unique_ptrINS_5GraphESt14default_deleteIS7_EEjjj at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine10initializeINS_14InstructionSetIsEEEEvPKcRKSt10unique_ptrINS_5GraphESt14default_deleteIS7_EEjjj at Base 3.0.2
_ZN4spoa19SimdAlignmentEngine5alignEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteIS4_EE at Base 3.0.0
+ _ZN4spoa19SimdAlignmentEngine6affineINS_14InstructionSetIiEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine6affineINS_14InstructionSetIsEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine6convexINS_14InstructionSetIiEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine6convexINS_14InstructionSetIsEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine6linearINS_14InstructionSetIiEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
+ _ZN4spoa19SimdAlignmentEngine6linearINS_14InstructionSetIsEEEESt6vectorISt4pairIiiESaIS6_EEPKcjRKSt10unique_ptrINS_5GraphESt14default_deleteISC_EE at Base 3.0.2
_ZN4spoa19SimdAlignmentEngine7reallocEjjj at Base 1.1.3
_ZN4spoa19SimdAlignmentEngine8preallocEjj at Base 1.1.3
_ZN4spoa19SimdAlignmentEngineC1ENS_13AlignmentTypeENS_16AlignmentSubtypeEaaaaaa at Base 3.0.0
@@ -88,13 +97,17 @@ libspoa.so.3 libspoa3 #MINVER#
_ZNSt6vectorISt10shared_ptrIN4spoa4EdgeEESaIS3_EE17_M_realloc_insertIJRS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_ at Base 1.1.3
_ZNSt6vectorISt10unique_ptrIN4spoa4NodeESt14default_deleteIS2_EESaIS5_EE17_M_realloc_insertIJS5_EEEvN9__gnu_cxx17__normal_iteratorIPS5_S7_EEDpOT_ at Base 1.1.3
_ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJRKjiEEEvDpOT_ at Base 3.0.0
+ _ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJiRiEEEvDpOT_ at Base 3.0.2
_ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJijEEEvDpOT_ at Base 3.0.0
+ _ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJjiEEEvDpOT_ at Base 3.0.2
_ZNSt6vectorISt4pairIiiESaIS1_EE12emplace_backIJjjEEEvDpOT_ at Base 3.0.0
_ZNSt6vectorIbSaIbEE14_M_fill_insertESt13_Bit_iteratormb at Base 1.1.3
_ZNSt6vectorIiSaIiEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPiS1_EEmRKi at Base 1.1.3
_ZNSt6vectorIjSaIjEE12emplace_backIJRKiEEEvDpOT_ at Base 1.1.3
_ZNSt6vectorIjSaIjEE12emplace_backIJRiEEEvDpOT_ at Base 1.1.3
_ZNSt6vectorIjSaIjEE12emplace_backIJRjEEEvDpOT_ at Base 1.1.3
+ _ZNSt6vectorIjSaIjEE12emplace_backIJiEEEvDpOT_ at Base 3.0.2
+ _ZNSt6vectorIjSaIjEE12emplace_backIJjEEEvDpOT_ at Base 3.0.2
_ZNSt6vectorIjSaIjEE14_M_fill_insertEN9__gnu_cxx17__normal_iteratorIPjS1_EEmRKj at Base 1.1.3
_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_ at Base 1.1.3
_ZTIN4spoa15AlignmentEngineE at Base 1.1.3
=====================================
debian/patches/fix_soversion.patch
=====================================
@@ -4,8 +4,8 @@ Author: Andreas Tille <tille at debian.org>
Last-Update: Mon, 28 Jan 2019 20:04:58 +0100
Bug-Upstream: https://github.com/rvaser/spoa/issues/14
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
+--- spoa.orig/CMakeLists.txt
++++ spoa/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.2)
-project(spoa LANGUAGES CXX VERSION 3.0.0)
=====================================
debian/patches/series
=====================================
@@ -1,3 +1,4 @@
use_debian_packaged_libs.patch
shared_and_static.patch
fix_soversion.patch
+simde
=====================================
debian/patches/shared_and_static.patch
=====================================
@@ -2,9 +2,9 @@ Author: Andreas Tille <tille at debian.org>
Last-Update: Fri, 08 Jun 2018 13:20:51 +0200
Description: Build shared and static lib
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -21,9 +21,15 @@ if (spoa_optimize_for_native)
+--- spoa.orig/CMakeLists.txt
++++ spoa/CMakeLists.txt
+@@ -24,9 +24,15 @@
endif()
# build SPOA as a static library by default
@@ -22,7 +22,7 @@ Description: Build shared and static lib
src/alignment_engine.cpp
src/graph.cpp
src/simd_alignment_engine.cpp
-@@ -33,12 +39,17 @@ target_include_directories(spoa PUBLIC
+@@ -36,12 +42,17 @@
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>)
=====================================
debian/patches/simde
=====================================
@@ -0,0 +1,371 @@
+From: Michael R. Crusoe <michael.crusoe at gmail.com>
+Subject: Enable building on non-x86_64
+--- spoa.orig/src/simd_alignment_engine.cpp
++++ spoa/src/simd_alignment_engine.cpp
+@@ -9,7 +9,7 @@
+ #include <limits>
+
+ extern "C" {
+- #include <immintrin.h> // AVX2 and lower
++ #include "simde/x86/avx2.h" // AVX2 and lower
+ }
+
+ #include "spoa/graph.hpp"
+@@ -43,31 +43,29 @@
+ template<typename T>
+ struct InstructionSet;
+
+-#if defined(__AVX2__)
+-
+ constexpr std::uint32_t kRegisterSize = 256;
+-using __mxxxi = __m256i;
++using __mxxxi = simde__m256i;
+
+ inline __mxxxi _mmxxx_load_si(__mxxxi const* mem_addr) {
+- return _mm256_load_si256(mem_addr);
++ return simde_mm256_load_si256(mem_addr);
+ }
+
+ inline void _mmxxx_store_si(__mxxxi* mem_addr, const __mxxxi& a) {
+- _mm256_store_si256(mem_addr, a);
++ simde_mm256_store_si256(mem_addr, a);
+ }
+
+ inline __mxxxi _mmxxx_or_si(const __mxxxi& a, const __mxxxi& b) {
+- return _mm256_or_si256(a, b);
++ return simde_mm256_or_si256(a, b);
+ }
+
+ #define _mmxxx_slli_si(a, n) n < 16 ? \
+- _mm256_alignr_epi8(a, _mm256_permute2x128_si256(a, a, \
+- _MM_SHUFFLE(0, 0, 2, 0)), 16 - n) : \
+- _mm256_permute2x128_si256(a, a, _MM_SHUFFLE(0, 0, 2, 0))
++ simde_mm256_alignr_epi8(a, simde_mm256_permute2x128_si256(a, a, \
++ SIMDE_MM_SHUFFLE(0, 0, 2, 0)), 16 - n) : \
++ simde_mm256_permute2x128_si256(a, a, SIMDE_MM_SHUFFLE(0, 0, 2, 0))
+
+ #define _mmxxx_srli_si(a, n) \
+- _mm256_srli_si256(_mm256_permute2x128_si256(a, a, \
+- _MM_SHUFFLE(2, 0, 0, 1)), n - 16)
++ simde_mm256_srli_si256(simde_mm256_permute2x128_si256(a, a, \
++ SIMDE_MM_SHUFFLE(2, 0, 0, 1)), n - 16)
+
+ template<>
+ struct InstructionSet<std::int16_t> {
+@@ -77,19 +75,19 @@
+ static constexpr std::uint32_t kLSS = 2; // Left Shift Size
+ static constexpr std::uint32_t kRSS = 30; // Right Shift Size
+ static inline __mxxxi _mmxxx_add_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm256_add_epi16(a, b);
++ return simde_mm256_add_epi16(a, b);
+ }
+ static inline __mxxxi _mmxxx_sub_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm256_sub_epi16(a, b);
++ return simde_mm256_sub_epi16(a, b);
+ }
+ static inline __mxxxi _mmxxx_min_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm256_min_epi16(a, b);
++ return simde_mm256_min_epi16(a, b);
+ }
+ static inline __mxxxi _mmxxx_max_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm256_max_epi16(a, b);
++ return simde_mm256_max_epi16(a, b);
+ }
+ static inline __mxxxi _mmxxx_set1_epi(type a) {
+- return _mm256_set1_epi16(a);
++ return simde_mm256_set1_epi16(a);
+ }
+ static inline void _mmxxx_prefix_max(__mxxxi& a, const __mxxxi* masks,
+ const __mxxxi* penalties) {
+@@ -113,19 +111,19 @@
+ static constexpr std::uint32_t kLSS = 4;
+ static constexpr std::uint32_t kRSS = 28;
+ static inline __mxxxi _mmxxx_add_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm256_add_epi32(a, b);
++ return simde_mm256_add_epi32(a, b);
+ }
+ static inline __mxxxi _mmxxx_sub_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm256_sub_epi32(a, b);
++ return simde_mm256_sub_epi32(a, b);
+ }
+ static inline __mxxxi _mmxxx_min_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm256_min_epi32(a, b);
++ return simde_mm256_min_epi32(a, b);
+ }
+ static inline __mxxxi _mmxxx_max_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm256_max_epi32(a, b);
++ return simde_mm256_max_epi32(a, b);
+ }
+ static inline __mxxxi _mmxxx_set1_epi(type a) {
+- return _mm256_set1_epi32(a);
++ return simde_mm256_set1_epi32(a);
+ }
+ static inline void _mmxxx_prefix_max(__mxxxi& a, const __mxxxi* masks,
+ const __mxxxi* penalties) {
+@@ -139,99 +137,6 @@
+ }
+ };
+
+-#elif defined(__SSE4_1__)
+-
+-constexpr std::uint32_t kRegisterSize = 128;
+-using __mxxxi = __m128i;
+-
+-inline __mxxxi _mmxxx_load_si(__mxxxi const* mem_addr) {
+- return _mm_load_si128(mem_addr);
+-}
+-
+-inline void _mmxxx_store_si(__mxxxi* mem_addr, const __mxxxi& a) {
+- _mm_store_si128(mem_addr, a);
+-}
+-
+-inline __mxxxi _mmxxx_or_si(const __mxxxi& a, const __mxxxi& b) {
+- return _mm_or_si128(a, b);
+-}
+-
+-#define _mmxxx_slli_si(a, n) \
+- _mm_slli_si128(a, n)
+-
+-#define _mmxxx_srli_si(a, n) \
+- _mm_srli_si128(a, n)
+-
+-template<>
+-struct InstructionSet<std::int16_t> {
+- using type = std::int16_t;
+- static constexpr std::uint32_t kNumVar = kRegisterSize / (8 * sizeof(type));
+- static constexpr std::uint32_t kLogNumVar = 3;
+- static constexpr std::uint32_t kLSS = 2;
+- static constexpr std::uint32_t kRSS = 14;
+- static inline __mxxxi _mmxxx_add_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm_add_epi16(a, b);
+- }
+- static inline __mxxxi _mmxxx_sub_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm_sub_epi16(a, b);
+- }
+- static inline __mxxxi _mmxxx_min_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm_min_epi16(a, b);
+- }
+- static inline __mxxxi _mmxxx_max_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm_max_epi16(a, b);
+- }
+- static inline __mxxxi _mmxxx_set1_epi(type a) {
+- return _mm_set1_epi16(a);
+- }
+- static inline void _mmxxx_prefix_max(__mxxxi& a, const __mxxxi* masks,
+- const __mxxxi* penalties) {
+-
+- a = _mmxxx_max_epi(a, _mmxxx_or_si(masks[0], _mmxxx_slli_si(
+- _mmxxx_add_epi(a, penalties[0]), 2)));
+- a = _mmxxx_max_epi(a, _mmxxx_or_si(masks[1], _mmxxx_slli_si(
+- _mmxxx_add_epi(a, penalties[1]), 4)));
+- a = _mmxxx_max_epi(a, _mmxxx_or_si(masks[2], _mmxxx_slli_si(
+- _mmxxx_add_epi(a, penalties[2]), 8)));
+- }
+-};
+-
+-template<>
+-struct InstructionSet<std::int32_t> {
+- using type = std::int32_t;
+- static constexpr std::uint32_t kNumVar = kRegisterSize / (8 * sizeof(type));
+- static constexpr std::uint32_t kLogNumVar = 2;
+- static constexpr std::uint32_t kLSS = 4;
+- static constexpr std::uint32_t kRSS = 12;
+- static inline __mxxxi _mmxxx_add_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm_add_epi32(a, b);
+- }
+- static inline __mxxxi _mmxxx_sub_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm_sub_epi32(a, b);
+- }
+- static inline __mxxxi _mmxxx_min_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm_min_epi32(a, b);
+- }
+- static inline __mxxxi _mmxxx_max_epi(const __mxxxi& a, const __mxxxi& b) {
+- return _mm_max_epi32(a, b);
+- }
+- static inline __mxxxi _mmxxx_set1_epi(type a) {
+- return _mm_set1_epi32(a);
+- }
+- static inline void _mmxxx_prefix_max(__mxxxi& a, const __mxxxi* masks,
+- const __mxxxi* penalties) {
+-
+- a = _mmxxx_max_epi(a, _mmxxx_or_si(masks[0], _mmxxx_slli_si(
+- _mmxxx_add_epi(a, penalties[0]), 4)));
+- a = _mmxxx_max_epi(a, _mmxxx_or_si(masks[1], _mmxxx_slli_si(
+- _mmxxx_add_epi(a, penalties[1]), 8)));
+- }
+-};
+-
+-#endif
+-
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ template<typename T>
+ void _mmxxx_print(const __mxxxi& a) {
+
+@@ -288,28 +193,16 @@
+ return -1;
+ }
+
+-#endif
+-
+ std::unique_ptr<AlignmentEngine> createSimdAlignmentEngine(AlignmentType type,
+ AlignmentSubtype subtype, std::int8_t m, std::int8_t n, std::int8_t g,
+ std::int8_t e, std::int8_t q, std::int8_t c) {
+
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ return std::unique_ptr<AlignmentEngine>(new SimdAlignmentEngine(type,
+ subtype, m, n, g, e, q, c));
+-
+-#else
+-
+- return nullptr;
+-
+-#endif
+ }
+
+ struct SimdAlignmentEngine::Implementation {
+
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ std::vector<std::uint32_t> node_id_to_rank;
+
+ std::unique_ptr<__mxxxi[]> sequence_profile_storage;
+@@ -342,7 +235,6 @@
+ penalties(nullptr) {
+ }
+
+-#endif
+ };
+
+ SimdAlignmentEngine::SimdAlignmentEngine(AlignmentType type,
+@@ -358,8 +250,6 @@
+ void SimdAlignmentEngine::prealloc(std::uint32_t max_sequence_size,
+ std::uint32_t alphabet_size) {
+
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ std::uint32_t longest_path = max_sequence_size * (alphabet_size + 1) + 1 +
+ InstructionSet<std::int16_t>::kNumVar;
+
+@@ -374,14 +264,11 @@
+ alphabet_size * max_sequence_size, alphabet_size);
+ }
+
+-#endif
+ }
+
+ void SimdAlignmentEngine::realloc(std::uint32_t matrix_width,
+ std::uint32_t matrix_height, std::uint32_t num_codes) {
+
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ if (pimpl_->node_id_to_rank.size() < matrix_height - 1) {
+ pimpl_->node_id_to_rank.resize(matrix_height - 1, 0);
+ }
+@@ -453,7 +340,6 @@
+ pimpl_->penalties_storage = std::unique_ptr<__mxxxi[]>(storage);
+ }
+
+-#endif
+ }
+
+ template<typename T>
+@@ -461,8 +347,6 @@
+ const std::unique_ptr<Graph>& graph, std::uint32_t normal_matrix_width,
+ std::uint32_t matrix_width, std::uint32_t matrix_height) noexcept {
+
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ std::int32_t padding_penatly = -1 * std::max(std::max(abs(m_), abs(n_)),
+ std::max(abs(g_), abs(q_)));
+
+@@ -643,7 +527,6 @@
+ break;
+ }
+
+-#endif
+ }
+
+ Alignment SimdAlignmentEngine::align(const char* sequence,
+@@ -653,8 +536,6 @@
+ return Alignment();
+ }
+
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ std::uint32_t longest_path = graph->nodes().size() + 1 + sequence_size +
+ InstructionSet<std::int16_t>::kNumVar;
+
+@@ -680,19 +561,12 @@
+
+ return Alignment();
+
+-#else
+-
+- return Alignment();
+-
+-#endif
+ }
+
+ template<typename T>
+ Alignment SimdAlignmentEngine::linear(const char* sequence,
+ std::uint32_t sequence_size, const std::unique_ptr<Graph>& graph) noexcept {
+
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ std::uint32_t normal_matrix_width = sequence_size;
+ std::uint32_t matrix_width = (sequence_size + (sequence_size % T::kNumVar == 0 ?
+ 0 : T::kNumVar - sequence_size % T::kNumVar)) / T::kNumVar;
+@@ -1027,19 +901,12 @@
+ std::reverse(alignment.begin(), alignment.end());
+ return alignment;
+
+-#else
+-
+- return Alignment();
+-
+-#endif
+ }
+
+ template<typename T>
+ Alignment SimdAlignmentEngine::affine(const char* sequence,
+ std::uint32_t sequence_size, const std::unique_ptr<Graph>& graph) noexcept {
+
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ std::uint32_t normal_matrix_width = sequence_size;
+ std::uint32_t matrix_width = (sequence_size + (sequence_size % T::kNumVar == 0 ?
+ 0 : T::kNumVar - sequence_size % T::kNumVar)) / T::kNumVar;
+@@ -1457,19 +1324,12 @@
+ std::reverse(alignment.begin(), alignment.end());
+ return alignment;
+
+-#else
+-
+- return Alignment();
+-
+-#endif
+ }
+
+ template<typename T>
+ Alignment SimdAlignmentEngine::convex(const char* sequence,
+ std::uint32_t sequence_size, const std::unique_ptr<Graph>& graph) noexcept {
+
+-#if defined(__AVX2__) || defined(__SSE4_1__)
+-
+ std::uint32_t normal_matrix_width = sequence_size;
+ std::uint32_t matrix_width = (sequence_size + (sequence_size % T::kNumVar == 0 ?
+ 0 : T::kNumVar - sequence_size % T::kNumVar)) / T::kNumVar;
+@@ -1962,11 +1822,6 @@
+
+ std::reverse(alignment.begin(), alignment.end());
+ return alignment;
+-#else
+-
+- return Alignment();
+-
+-#endif
+ }
+
+ }
=====================================
debian/patches/use_debian_packaged_libs.patch
=====================================
@@ -2,9 +2,9 @@ Author: Andreas Tille <tille at debian.org>
Last-Update: Fri, 08 Jun 2018 13:20:51 +0200
Description: Use Debian packaged libraries
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -50,11 +50,7 @@ if (spoa_build_executable)
+--- spoa.orig/CMakeLists.txt
++++ spoa/CMakeLists.txt
+@@ -53,11 +53,7 @@
src/sequence.cpp
src/main.cpp)
@@ -17,7 +17,7 @@ Description: Use Debian packaged libraries
set_target_properties(spoa_bin PROPERTIES OUTPUT_NAME spoa)
install(TARGETS spoa_bin DESTINATION ${CMAKE_INSTALL_BINDIR})
-@@ -71,12 +67,5 @@ if (spoa_build_tests)
+@@ -74,12 +70,5 @@
src/sequence.cpp
test/spoa_test.cpp)
=====================================
debian/rules
=====================================
@@ -3,6 +3,7 @@
# DH_VERBOSE := 1
export DEB_BUILD_MAINT_OPTIONS=hardening=+all
+export DEB_CXXFLAGS_MAINT_APPEND=-fopenmp-simd -O3
DEB_CMAKE_EXTRA_FLAGS = -DCMAKE_BUILD_TYPE=Release \
-Dspoa_build_executable=ON \
=====================================
debian/salsa-ci.yml
=====================================
@@ -0,0 +1,4 @@
+---
+include:
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/salsa-ci.yml
+ - https://salsa.debian.org/salsa-ci-team/pipeline/raw/master/pipeline-jobs.yml
=====================================
debian/upstream/metadata
=====================================
@@ -1,3 +1,5 @@
+Bug-Database: https://github.com/rvaser/spoa/issues
+Bug-Submit: https://github.com/rvaser/spoa/issues/new
Registry:
- Name: OMICtools
Entry: NA
@@ -5,3 +7,5 @@ Registry:
Entry: spoa
- Name: bio.tools
Entry: NA
+Repository: https://github.com/rvaser/spoa.git
+Repository-Browse: https://github.com/rvaser/spoa
=====================================
src/graph.cpp
=====================================
@@ -726,6 +726,8 @@ void Graph::print_dot(const std::string& path) const {
}
void Graph::clear() {
+ num_codes_ = 0;
+ num_sequences_ = 0;
std::fill(coder_.begin(), coder_.end(), -1);
std::fill(decoder_.begin(), decoder_.end(), -1);
nodes_.clear();
=====================================
src/main.cpp
=====================================
@@ -10,7 +10,7 @@
#include "spoa/spoa.hpp"
#include "bioparser/bioparser.hpp"
-static const std::string version = "v3.0.1";
+static const std::string version = "v3.0.2";
static struct option options[] = {
{"algorithm", required_argument, nullptr, 'l'},
View it on GitLab: https://salsa.debian.org/med-team/spoa/-/compare/05fba420b24da1f88372e7f7f6449a03742384fe...c45ea4599c3ba47652a217684ef2a0bb0bb3ee1f
--
View it on GitLab: https://salsa.debian.org/med-team/spoa/-/compare/05fba420b24da1f88372e7f7f6449a03742384fe...c45ea4599c3ba47652a217684ef2a0bb0bb3ee1f
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20200413/d0240f55/attachment-0001.html>
More information about the debian-med-commit
mailing list