gnu: gnucash: Disable the stress-options-test using a phase.
[jackhill/guix/guix.git] / gnu / packages / patches / avogadro-python-eigen-lib.patch
1 From 2d4be7ede177a8df7340fe3b209698d591ee8a04 Mon Sep 17 00:00:00 2001
2 From: Claudio Fernandes <claudiosf.claudio@gmail.com>
3 Date: Mon, 16 Jan 2017 19:48:23 -0200
4 Subject: [PATCH] Adapt libavogadro/python to Eigen 3.3
5
6 ---
7 libavogadro/src/python/camera.cpp | 2 +-
8 libavogadro/src/python/eigen.cpp | 60 +++++++++++++++++++--------------------
9 2 files changed, 31 insertions(+), 31 deletions(-)
10
11 diff --git a/libavogadro/src/python/camera.cpp b/libavogadro/src/python/camera.cpp
12 index 69ca87bf8..30b32af7d 100644
13 --- a/libavogadro/src/python/camera.cpp
14 +++ b/libavogadro/src/python/camera.cpp
15 @@ -10,7 +10,7 @@ using namespace Avogadro;
16 void export_Camera()
17 {
18
19 - const Eigen::Transform3d& (Camera::*modelview_ptr)() const = &Camera::modelview;
20 + const Eigen::Projective3d& (Camera::*modelview_ptr)() const = &Camera::modelview;
21 Eigen::Vector3d (Camera::*unProject_ptr1)(const Eigen::Vector3d&) const = &Camera::unProject;
22 Eigen::Vector3d (Camera::*unProject_ptr2)(const QPoint&, const Eigen::Vector3d&) const = &Camera::unProject;
23 Eigen::Vector3d (Camera::*unProject_ptr3)(const QPoint&) const = &Camera::unProject;
24 diff --git a/libavogadro/src/python/eigen.cpp b/libavogadro/src/python/eigen.cpp
25 index c1faedbcc..20b4e719d 100644
26 --- a/libavogadro/src/python/eigen.cpp
27 +++ b/libavogadro/src/python/eigen.cpp
28 @@ -305,9 +305,9 @@ template <> struct ScalarTraits<double>
29 struct innerclass
30 {
31 //
32 - // Eigen::Transform3d --> python array (4x4)
33 + // Eigen::Projective3d --> python array (4x4)
34 //
35 - static PyObject* convert(Eigen::Transform3d const &trans)
36 + static PyObject* convert(Eigen::Projective3d const &trans)
37 {
38 npy_intp dims[2] = { 4, 4 };
39 PyObject *result = PyArray_SimpleNew(2, dims, PyArray_DOUBLE);
40 @@ -321,9 +321,9 @@ template <> struct ScalarTraits<double>
41 return incref(result);
42 }
43 //
44 - // Eigen::Transform3d* --> python array (4x4)
45 + // Eigen::Projective3d* --> python array (4x4)
46 //
47 - static PyObject* convert(Eigen::Transform3d *trans)
48 + static PyObject* convert(Eigen::Projective3d *trans)
49 {
50 npy_intp dims[2] = { 4, 4 };
51 PyObject *result = PyArray_SimpleNew(2, dims, PyArray_DOUBLE);
52 @@ -337,9 +337,9 @@ template <> struct ScalarTraits<double>
53 return incref(result);
54 }
55 //
56 - // const Eigen::Transform3d* --> python array (4x4)
57 + // const Eigen::Projective3d* --> python array (4x4)
58 //
59 - static PyObject* convert(const Eigen::Transform3d *trans)
60 + static PyObject* convert(const Eigen::Projective3d *trans)
61 {
62 npy_intp dims[2] = { 4, 4 };
63 PyObject *result = PyArray_SimpleNew(2, dims, PyArray_DOUBLE);
64 @@ -358,10 +358,10 @@ template <> struct ScalarTraits<double>
65 Transform3d_to_python_array()
66 {
67 #ifndef WIN32
68 - to_python_converter<Eigen::Transform3d, innerclass>();
69 + to_python_converter<Eigen::Projective3d, innerclass>();
70 #endif
71 - to_python_converter<Eigen::Transform3d*, innerclass>();
72 - to_python_converter<const Eigen::Transform3d*, innerclass>();
73 + to_python_converter<Eigen::Projective3d*, innerclass>();
74 + to_python_converter<const Eigen::Projective3d*, innerclass>();
75 }
76
77 };
78 @@ -373,17 +373,17 @@ template <> struct ScalarTraits<double>
79 // Insert an rvalue from_python converter at the tail of the
80 // chain. Used for implicit conversions
81 //
82 - // python array --> Eigen::Transform3d
83 + // python array --> Eigen::Projective3d
84 //
85 // used for:
86 //
87 - // void function(Eigen::Transform3d vec)
88 - // void function(Eigen::Transform3d & vec)
89 - // void function(const Eigen::Transform3d & vec)
90 + // void function(Eigen::Projective3d vec)
91 + // void function(Eigen::Projective3d & vec)
92 + // void function(const Eigen::Projective3d & vec)
93 //
94 - converter::registry::push_back( &convertible, &construct, type_id<Eigen::Transform3d>() );
95 + converter::registry::push_back( &convertible, &construct, type_id<Eigen::Projective3d>() );
96
97 - converter::registry::insert( &convert, type_id<Eigen::Transform3d>() );
98 + converter::registry::insert( &convert, type_id<Eigen::Projective3d>() );
99 }
100
101 static void* convert(PyObject *obj_ptr)
102 @@ -401,7 +401,7 @@ template <> struct ScalarTraits<double>
103 throw_error_already_set(); // the 1D array does not have exactly 3 elements
104
105 double *values = reinterpret_cast<double*>(array->data);
106 - Eigen::Transform3d *c_obj = new Eigen::Transform3d();
107 + Eigen::Projective3d *c_obj = new Eigen::Projective3d();
108 double *dataPtr = c_obj->data();
109
110 for (int i = 0; i < 16; ++i)
111 @@ -432,7 +432,7 @@ template <> struct ScalarTraits<double>
112 // I think this is a better way to get at the double array, where is this
113 // deleted though? Does Boost::Python do it?
114 double *values = reinterpret_cast<double*>(array->data);
115 - Eigen::Transform3d *storage = new Eigen::Transform3d();
116 + Eigen::Projective3d *storage = new Eigen::Projective3d();
117 double *dataPtr = storage->data();
118
119 for (int i = 0; i < 16; ++i)
120 @@ -467,21 +467,21 @@ class EigenUnitTestHelper
121 void set_vector3d_ptr(Eigen::Vector3d* vec) { m_vector3d = *vec; }
122 void set_const_vector3d_ptr(const Eigen::Vector3d* const vec) { m_vector3d = *vec; }
123
124 - //Eigen::Transform3d transform3d() { return m_transform3d; }
125 - //Eigen::Transform3d& transform3d_ref() { return m_transform3d; }
126 - const Eigen::Transform3d& const_transform3d_ref() { return m_transform3d; }
127 - Eigen::Transform3d* transform3d_ptr() { return &m_transform3d; }
128 - const Eigen::Transform3d* const_transform3d_ptr() { return &m_transform3d; }
129 -
130 - //void set_transform3d(Eigen::Transform3d vec) { m_transform3d = vec; }
131 - //void set_transform3d_ref(Eigen::Transform3d& vec) { m_transform3d = vec; }
132 - void set_const_transform3d_ref(const Eigen::Transform3d& vec) { m_transform3d = vec; }
133 - void set_transform3d_ptr(Eigen::Transform3d* vec) { m_transform3d = *vec; }
134 - void set_const_transform3d_ptr(const Eigen::Transform3d* const vec) { m_transform3d = *vec; }
135 + //Eigen::Projective3d transform3d() { return m_transform3d; }
136 + //Eigen::Projective3d& transform3d_ref() { return m_transform3d; }
137 + const Eigen::Projective3d& const_transform3d_ref() { return m_transform3d; }
138 + Eigen::Projective3d* transform3d_ptr() { return &m_transform3d; }
139 + const Eigen::Projective3d* const_transform3d_ptr() { return &m_transform3d; }
140 +
141 + //void set_transform3d(Eigen::Projective3d vec) { m_transform3d = vec; }
142 + //void set_transform3d_ref(Eigen::Projective3d& vec) { m_transform3d = vec; }
143 + void set_const_transform3d_ref(const Eigen::Projective3d& vec) { m_transform3d = vec; }
144 + void set_transform3d_ptr(Eigen::Projective3d* vec) { m_transform3d = *vec; }
145 + void set_const_transform3d_ptr(const Eigen::Projective3d* const vec) { m_transform3d = *vec; }
146
147 private:
148 Eigen::Vector3d m_vector3d;
149 - Eigen::Transform3d m_transform3d;
150 + Eigen::Projective3d m_transform3d;
151
152 };
153 #endif
154 @@ -529,6 +529,6 @@ void export_Eigen()
155 Vector3x_to_python_array<Eigen::Vector3i>();
156 Vector3x_from_python_array<Eigen::Vector3i>();
157
158 - // Eigen::Transform3d
159 + // Eigen::Projective3d
160 Transform3d_to_python_array();
161 Transform3d_from_python_array();