[freecad] 01/01: Remove EIGEN2_SUPPORT. (Closes: #786356)

Anton Gladky gladk at moszumanska.debian.org
Sun Sep 20 11:10:03 UTC 2015


This is an automated email from the git hooks/post-receive script.

gladk pushed a commit to branch master
in repository freecad.

commit a244bfe9d22de4e1bb9c19ddb4c96749239a70ab
Author: Anton Gladky <gladk at debian.org>
Date:   Sun Sep 20 13:09:15 2015 +0200

    Remove EIGEN2_SUPPORT. (Closes: #786356)
---
 debian/patches/eigen3.patch | 376 ++++++++++++++++++++++++++++++++++++++++++++
 debian/patches/series       |   1 +
 2 files changed, 377 insertions(+)

diff --git a/debian/patches/eigen3.patch b/debian/patches/eigen3.patch
new file mode 100644
index 0000000..5f68c36
--- /dev/null
+++ b/debian/patches/eigen3.patch
@@ -0,0 +1,376 @@
+Description: Drop EIGEN2_SUPPORT
+Author: Anton Gladky <gladk at debian.org>
+Bug-Debian: https://bugs.debian.org/786356
+Last-Update: 2015-09-20
+
+Index: freecad-0.15.4671/src/Mod/Mesh/App/Core/Approximation.cpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Mesh/App/Core/Approximation.cpp
++++ freecad-0.15.4671/src/Mod/Mesh/App/Core/Approximation.cpp
+@@ -26,6 +26,7 @@
+ #ifndef _PreComp_
+ # include <algorithm>
+ #endif
++#include <Eigen/Dense>
+ 
+ #include "Approximation.h"
+ 
+@@ -56,8 +57,6 @@ extern "C" void LAPACK_DGESV (int const*
+ 
+ #endif
+ 
+-# include <Eigen/LeastSquares>
+-
+ using namespace MeshCore;
+ 
+ 
+@@ -700,7 +699,7 @@ double SurfaceFit::PolynomFit()
+     //std::clog << b << std::endl;
+ #else
+     // A.llt().solve(b,&x); // not sure if always positive definite
+-    A.qr().solve(b,&x);
++    x = A.colPivHouseholderQr().solve(b);
+ #endif
+ 
+     _fCoeff[0] = (float)(-x(5));
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/articulatedbodyinertia.cpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/articulatedbodyinertia.cpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/articulatedbodyinertia.cpp
+@@ -29,8 +29,8 @@ namespace KDL{
+     
+     ArticulatedBodyInertia::ArticulatedBodyInertia(const RigidBodyInertia& rbi)
+     {
+-        this->M.part<SelfAdjoint>()=Matrix3d::Identity()*rbi.m;
+-        this->I.part<SelfAdjoint>()=Map<Matrix3d>(rbi.I.data);
++        this->M=Matrix3d::Identity()*rbi.m;
++        this->I=Map<Matrix3d>(rbi.I.data);
+         this->H << 0,-rbi.h[2],rbi.h[1],
+             rbi.h[2],0,-rbi.h[0],
+             -rbi.h[1],rbi.h[0],0;
+@@ -43,8 +43,8 @@ namespace KDL{
+ 
+     ArticulatedBodyInertia::ArticulatedBodyInertia(const Eigen::Matrix3d& M, const Eigen::Matrix3d& H, const Eigen::Matrix3d& I)
+     {
+-        this->M.part<SelfAdjoint>()=M;
+-        this->I.part<SelfAdjoint>()=I;
++        this->M=M;
++        this->I=I;
+         this->H=H;
+     }
+     
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/chainiksolvervel_pinv_givens.cpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/chainiksolvervel_pinv_givens.cpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/chainiksolvervel_pinv_givens.cpp
+@@ -68,9 +68,9 @@ namespace KDL
+         //std::cout<<"# sweeps: "<<ret<<std::endl;
+ 
+         if(transpose)
+-            UY = (V.transpose() * v_in_eigen).lazy();
++            UY = (V.transpose() * v_in_eigen);
+         else
+-            UY = (U.transpose() * v_in_eigen).lazy();
++            UY = (U.transpose() * v_in_eigen);
+ 
+         for (unsigned int i = 0; i < n; i++){
+             double wi = UY(i);
+@@ -83,9 +83,9 @@ namespace KDL
+             SUY(i)= alpha * wi;
+         }
+         if(transpose)
+-            qdot_eigen = (U * SUY).lazy();
++            qdot_eigen = (U * SUY);
+         else
+-            qdot_eigen = (V * SUY).lazy();
++            qdot_eigen = (V * SUY);
+ 
+         for (unsigned int j=0;j<chain.getNrOfJoints();j++)
+             qdot_out(j)=qdot_eigen(j);
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/chainiksolvervel_pinv_givens.hpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/chainiksolvervel_pinv_givens.hpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/chainiksolvervel_pinv_givens.hpp
+@@ -8,7 +8,7 @@
+ 
+ #include <Eigen/Core>
+ 
+-USING_PART_OF_NAMESPACE_EIGEN;
++using namespace Eigen;
+ 
+ namespace KDL
+ {
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/chainiksolvervel_wdls.cpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/chainiksolvervel_wdls.cpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/chainiksolvervel_wdls.cpp
+@@ -78,15 +78,15 @@ namespace KDL
+         */
+         
+         // Create the Weighted jacobian
+-        tmp_jac_weight1 = (jac.data*weight_js).lazy();
+-        tmp_jac_weight2 = (weight_ts*tmp_jac_weight1).lazy();
++        tmp_jac_weight1 = (jac.data*weight_js);
++        tmp_jac_weight2 = (weight_ts*tmp_jac_weight1);
+    
+         // Compute the SVD of the weighted jacobian
+         int ret = svd_eigen_HH(tmp_jac_weight2,U,S,V,tmp,maxiter);
+                 
+         //Pre-multiply U and V by the task space and joint space weighting matrix respectively
+-        tmp_ts = (weight_ts*U.corner(Eigen::TopLeft,6,6)).lazy();
+-        tmp_js = (weight_js*V).lazy(); 
++        tmp_ts = (weight_ts*U.topLeftCorner(6,6));
++        tmp_js = (weight_js*V); 
+         
+         // tmp = (Si*U'*Ly*y), 
+         for (i=0;i<jac.columns();i++) {
+@@ -112,7 +112,7 @@ namespace KDL
+             qdot_out(i)=sum;
+         }
+         */
+-        qdot_out.data=(tmp_js*tmp).lazy();
++        qdot_out.data=(tmp_js*tmp);
+         return ret;
+     }
+     
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/jacobian.cpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/jacobian.cpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/jacobian.cpp
+@@ -23,7 +23,7 @@
+ 
+ namespace KDL
+ {
+-    USING_PART_OF_NAMESPACE_EIGEN
++    using namespace Eigen;
+ 
+     Jacobian::Jacobian()
+     {
+@@ -147,8 +147,8 @@ namespace KDL
+     }
+     
+     void Jacobian::setColumn(unsigned int i,const Twist& t){
+-        data.col(i).start<3>()=Eigen::Map<Vector3d>(t.vel.data);
+-        data.col(i).end<3>()=Eigen::Map<Vector3d>(t.rot.data);
++        data.col(i).head<3>()=Eigen::Map<Vector3d>(t.vel.data);
++        data.col(i).tail<3>()=Eigen::Map<Vector3d>(t.rot.data);
+     }
+ 
+ }
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/jntarray.cpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/jntarray.cpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/jntarray.cpp
+@@ -23,7 +23,7 @@
+ 
+ namespace KDL
+ {
+-    USING_PART_OF_NAMESPACE_EIGEN
++    using namespace Eigen;
+ 
+     JntArray::JntArray()
+     {
+@@ -101,7 +101,7 @@ namespace KDL
+ 
+     void MultiplyJacobian(const Jacobian& jac, const JntArray& src, Twist& dest)
+     {
+-        Eigen::Matrix<double,6,1> t=(jac.data*src.data).lazy();
++        Eigen::Matrix<double,6,1> t=(jac.data*src.data);
+         dest=Twist(Vector(t(0),t(1),t(2)),Vector(t(3),t(4),t(5)));
+     }
+     
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/jntspaceinertiamatrix.cpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/jntspaceinertiamatrix.cpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/jntspaceinertiamatrix.cpp
+@@ -23,7 +23,7 @@
+ 
+ namespace KDL
+ {
+-    USING_PART_OF_NAMESPACE_EIGEN
++    using namespace Eigen;
+ 
+     JntSpaceInertiaMatrix::JntSpaceInertiaMatrix()
+     {
+@@ -100,7 +100,7 @@ namespace KDL
+ 
+     void Multiply(const JntSpaceInertiaMatrix& src, const JntArray& vec, JntArray& dest)
+     {
+-        dest.data=(src.data*vec.data).lazy();
++        dest.data=(src.data*vec.data);
+     }
+     
+     void SetToZero(JntSpaceInertiaMatrix& mat)
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/treeiksolvervel_wdls.cpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/treeiksolvervel_wdls.cpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/treeiksolvervel_wdls.cpp
+@@ -76,15 +76,15 @@ namespace KDL {
+         
+         //Lets use the wdls algorithm to find the qdot:
+         // Create the Weighted jacobian
+-        J_Wq = (J * Wq).lazy();
+-        Wy_J_Wq = (Wy * J_Wq).lazy();
++        J_Wq = (J * Wq);
++        Wy_J_Wq = (Wy * J_Wq);
+         
+         // Compute the SVD of the weighted jacobian
+         int ret = svd_eigen_HH(Wy_J_Wq, U, S, V, tmp);
+         
+         //Pre-multiply U and V by the task space and joint space weighting matrix respectively
+-        Wy_t = (Wy * t).lazy();
+-        Wq_V = (Wq * V).lazy();
++        Wy_t = (Wy * t);
++        Wq_V = (Wq * V);
+         
+         // tmp = (Si*Wy*U'*y),
+         for (unsigned int i = 0; i < J.cols(); i++) {
+@@ -99,7 +99,7 @@ namespace KDL {
+         }
+         
+         // x = Lx^-1*V*tmp + x
+-        qdot_out.data = (Wq_V * tmp).lazy();
++        qdot_out.data = (Wq_V * tmp);
+         
+         return Wy_t.norm();
+     }
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/treeiksolvervel_wdls.hpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/treeiksolvervel_wdls.hpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/treeiksolvervel_wdls.hpp
+@@ -14,7 +14,7 @@
+ 
+ namespace KDL {
+ 
+-    USING_PART_OF_NAMESPACE_EIGEN;
++    using namespace Eigen;
+ 
+     class TreeIkSolverVel_wdls: public TreeIkSolverVel {
+     public:
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/utilities/svd_eigen_HH.cpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/utilities/svd_eigen_HH.cpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/utilities/svd_eigen_HH.cpp
+@@ -30,7 +30,7 @@ namespace KDL{
+         const int cols = A.cols();
+     
+         U.setZero();
+-        U.corner(Eigen::TopLeft,rows,cols)=A;
++        U.topLeftCorner(rows,cols)=A;
+ 
+         int i(-1),its(-1),j(-1),jj(-1),k(-1),nm=0;
+         int ppi(0);
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/utilities/svd_eigen_HH.hpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/utilities/svd_eigen_HH.hpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/utilities/svd_eigen_HH.hpp
+@@ -28,7 +28,7 @@
+ #include <Eigen/Core>
+ #include <algorithm>
+ 
+-USING_PART_OF_NAMESPACE_EIGEN;
++using namespace Eigen;
+ 
+ namespace KDL
+ {
+Index: freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/utilities/svd_eigen_Macie.hpp
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/kdl_cp/utilities/svd_eigen_Macie.hpp
++++ freecad-0.15.4671/src/Mod/Robot/App/kdl_cp/utilities/svd_eigen_Macie.hpp
+@@ -26,7 +26,7 @@
+ #define SVD_BOOST_MACIE
+ 
+ #include <Eigen/Core>
+-USING_PART_OF_NAMESPACE_EIGEN
++using namespace Eigen;
+ 
+ namespace KDL
+ {
+@@ -39,7 +39,7 @@ namespace KDL
+         unsigned int rotations=0;
+         if(toggle){
+             //Calculate B from new A and previous V
+-            B=(A*V).lazy();
++            B=(A*V);
+             while(rotate){
+                 rotate=false;
+                 rotations=0;
+@@ -76,9 +76,9 @@ namespace KDL
+                         B.col(i) = tempi;
+                         
+                         //Apply plane rotation to columns of V
+-                        tempi.start(V.rows()) = cos*V.col(i) + sin*V.col(j);
++                        tempi.head(V.rows()) = cos*V.col(i) + sin*V.col(j);
+                         V.col(j) = - sin*V.col(i) + cos*V.col(j);
+-                        V.col(i) = tempi.start(V.rows());
++                        V.col(i) = tempi.head(V.rows());
+ 
+                         rotate=true;
+                     }
+@@ -103,7 +103,7 @@ namespace KDL
+             return sweeps;
+         }else{
+             //Calculate B from new A and previous U'
+-            B =(U.transpose() * A).lazy();
++            B =(U.transpose() * A);
+             while(rotate){
+                 rotate=false;
+                 rotations=0;
+@@ -137,15 +137,15 @@ namespace KDL
+                         }
+ 
+                         //Apply plane rotation to rows of B
+-                        tempi.start(B.cols()) =  cos*B.row(i) + sin*B.row(j);
++                        tempi.head(B.cols()) =  cos*B.row(i) + sin*B.row(j);
+                         B.row(j) =  - sin*B.row(i) + cos*B.row(j);
+-                        B.row(i) =  tempi.start(B.cols());
++                        B.row(i) =  tempi.head(B.cols());
+ 
+ 
+                         //Apply plane rotation to rows of U
+-                        tempi.start(U.rows()) = cos*U.col(i) + sin*U.col(j);
++                        tempi.head(U.rows()) = cos*U.col(i) + sin*U.col(j);
+                         U.col(j) = - sin*U.col(i) + cos*U.col(j);
+-                        U.col(i) = tempi.start(U.rows());
++                        U.col(i) = tempi.head(U.rows());
+ 
+                         rotate=true;
+                     }
+Index: freecad-0.15.4671/src/Mod/Mesh/App/CMakeLists.txt
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Mesh/App/CMakeLists.txt
++++ freecad-0.15.4671/src/Mod/Mesh/App/CMakeLists.txt
+@@ -1,7 +1,5 @@
+ if(WIN32)
+     add_definitions(-DFCAppMesh -DWM4_FOUNDATION_DLL_EXPORT -DEIGEN2_SUPPORT)
+-else (Win32)
+-    add_definitions(-DEIGEN2_SUPPORT)
+ endif(WIN32)
+ 
+ include_directories(
+Index: freecad-0.15.4671/src/Mod/Robot/App/CMakeLists.txt
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/App/CMakeLists.txt
++++ freecad-0.15.4671/src/Mod/Robot/App/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ if(MSVC)
+     add_definitions(-DFCAppRobot -DHAVE_ACOSH -DHAVE_ASINH -DHAVE_ATANH -DEIGEN2_SUPPORT)
+ else(MSVC)
+-    add_definitions(-DHAVE_LIMITS_H -DHAVE_CONFIG_H -DEIGEN2_SUPPORT)
++    add_definitions(-DHAVE_LIMITS_H -DHAVE_CONFIG_H)
+ endif(MSVC)
+ 
+ 
+Index: freecad-0.15.4671/src/Mod/Robot/Gui/CMakeLists.txt
+===================================================================
+--- freecad-0.15.4671.orig/src/Mod/Robot/Gui/CMakeLists.txt
++++ freecad-0.15.4671/src/Mod/Robot/Gui/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ if(MSVC)
+     add_definitions(-DFCGuiRobot -DHAVE_ACOSH -DHAVE_ASINH -DHAVE_ATANH -DEIGEN2_SUPPORT)
+ else(MSVC)
+-    add_definitions(-DHAVE_LIMITS_H -DHAVE_CONFIG_H -DEIGEN2_SUPPORT)
++    add_definitions(-DHAVE_LIMITS_H -DHAVE_CONFIG_H)
+ endif(MSVC)
+ 
+ 
diff --git a/debian/patches/series b/debian/patches/series
index 1321ee0..d56b9ea 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -9,3 +9,4 @@ fix_clang_compilation.patch
 gcc5.patch
 remove_doc-files.patch
 remove_getting_webpage.patch
+eigen3.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/freecad.git



More information about the debian-science-commits mailing list