summarylogtreecommitdiffstats
path: root/libcmatrix-3.11.0-sse.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libcmatrix-3.11.0-sse.patch')
-rw-r--r--libcmatrix-3.11.0-sse.patch61
1 files changed, 61 insertions, 0 deletions
diff --git a/libcmatrix-3.11.0-sse.patch b/libcmatrix-3.11.0-sse.patch
new file mode 100644
index 000000000000..fa0721fb8691
--- /dev/null
+++ b/libcmatrix-3.11.0-sse.patch
@@ -0,0 +1,61 @@
+diff --color -Naur a/include/DynamicList.h b/include/DynamicList.h
+--- a/include/DynamicList.h 2010-12-04 20:13:35.000000000 +0200
++++ b/include/DynamicList.h 2022-11-24 13:09:10.524337827 +0200
+@@ -5,6 +5,7 @@
+ #include "BaseList.h"
+ #include "lcm_basethreads.h"
+ #include "Warnings.h"
++#include <cstdio>
+
+ namespace libcmatrix {
+
+diff --color -Naur a/include/lcm_ssecomplex.h b/include/lcm_ssecomplex.h
+--- a/include/lcm_ssecomplex.h 2011-05-16 12:22:07.000000000 +0300
++++ b/include/lcm_ssecomplex.h 2022-11-24 13:09:10.527671113 +0200
+@@ -151,7 +151,7 @@
+ {
+ static const union {
+ int i[4]; ssecomplex_t v;
+- } signbithigh = {{0,0,0,0x80000000}};
++ } signbithigh = {{0,0,0,(int)0x80000000}};
+ ssecomplex_t b_im = _mm_shuffle_pd(b,b,3); // Imag. part of b in both
+ const ssecomplex_t b_re = _mm_shuffle_pd(b,b,0); // Real part of b in both
+ const ssecomplex_t tmp=_mm_mul_pd(a,b_re);
+@@ -166,7 +166,7 @@
+ ssecomplex_t b_re = _mm_set1_pd(b);
+ static const union {
+ int i[4]; ssecomplex_t v;
+- } signbithigh = {{0,0,0,0x80000000}};
++ } signbithigh = {{0,0,0,(int)0x80000000}};
+ b_re = _mm_xor_pd(b_re, signbithigh.v); // Change sign of high
+ return complex(_mm_mul_pd(a.z_, b_re));
+ }
+@@ -184,14 +184,14 @@
+ inline complex operator- (const complex& a) {
+ static const union { // (signbit,signbit)
+ int i[4]; ssecomplex_t v;
+- } signbits = {{0,0x80000000,0,0x80000000}};
++ } signbits = {{0,(int)0x80000000,0,(int)0x80000000}};
+ return complex(_mm_xor_pd(a, signbits.v)); // Change sign of both elements
+ }
+
+ inline complex conj(const complex& a) {
+ static const union { // (signbit,signbit)
+ int i[4]; ssecomplex_t v;
+- } signbithigh = {{0,0,0,0x80000000}};
++ } signbithigh = {{0,0,0,(int)0x80000000}};
+ return complex(_mm_xor_pd(a.z_, signbithigh.v)); // Change sign of imag. part
+ }
+
+diff --color -Naur a/NMR/MetaPropagation.cc b/NMR/MetaPropagation.cc
+--- a/NMR/MetaPropagation.cc 2011-04-28 21:37:11.000000000 +0300
++++ b/NMR/MetaPropagation.cc 2022-11-24 13:09:10.531004401 +0200
+@@ -2289,7 +2289,7 @@
+ { ref_.clear(0); }
+ const space_T& operator()() const { return ref_; }
+ ~fudge_isotropic_() { ref_.ensure_rank(0); }
+- mutable space_T& ref_;
++ space_T& ref_;
+ };
+ template<> struct fudge_isotropic_<double> {
+ fudge_isotropic_(double v) : v_(v) {};