wouterboomsma / eigency Goto Github PK
View Code? Open in Web Editor NEWCython interface to Eigen library
License: MIT License
Cython interface to Eigen library
License: MIT License
I have a simple eigency test that works on a compilation machine , but poorly crashes on a production machine. Machines are Windows based, they use same Python version (3.6.5 64 Bits), with numpy 1.14.2 with mkl. I use eigency 1.77 with the shipped version of Eigen. Using latest Eigen 3.3.5 does not change anythong. The package is compiled with MSVC14. When looking at the generated pyd, dependency walker show roughly the same thing: all required DLL are found. I have tried on other production machine and met the same problem.
Does anyone has a clue on how to deal with this situation?
Below are the 4 files I need to build the python package that crashes on production machine.
The command that produces the crash looks like this.
python -c "import eigency_tests; print(eigency_tests.foo())"
The crash does not produce any message. On the compilation machine, the result is fine:
python36 -c"import eigency_tests; print(eigency_tests.foo())"
[[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]
[0 0 0]]
I build the package with command:
python setup.py build_ext --inplace
code.hpp
#ifndef CODE_HPP
#define CODE_HPP
#include <Eigen/Dense>
typedef Eigen::Matrix<int, Eigen::Dynamic, 3, Eigen::RowMajor> Matrix_int;
Matrix_int foo();
#endif
code.cpp
#include "code.hpp"
Matrix_int foo()
{
return Matrix_int::Zero(10,3);
}
eigency_tests.pyx
# distutils: language = c++
# distutils: sources = code.cpp
from eigency.core cimport *
cdef extern from "code.hpp":
cdef PlainObjectBase _foo "foo" ()
def foo():
return ndarray(_foo())
setup.py
# python setup.py build_ext --inplace
from setuptools import setup
from setuptools.extension import Extension
from Cython.Build import cythonize
import eigency
extensions = [
Extension("eigency_tests", ["eigency_tests.pyx"],
include_dirs = ["."] + eigency.get_includes()
),
]
dist = setup(
name = "eigency_tests",
version = "1.0",
ext_modules = cythonize(extensions),
packages = ["eigency_tests"]
)
The log looks like this:
running build_ext
building 'eigency_tests' extension
creating build\temp.win-amd64-3.6
creating build\temp.win-amd64-3.6\Release
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\jacquenot\AppData\Roaming\Python\Python36\site-packages\eigency -I. "-IC:\Program Files\Python36\lib\site-packages\numpy\core\include" -IC:\Users\jacquenot\AppData\Roaming\Python\Python36\site-packages\eigency\eigen_3.2.8 "-IC:\Program Files\Python36\include" "-IC:\Program Files\Python36\include" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" /EHsc /Tpeigency_tests.cpp /Fobuild\temp.win-amd64-3.6\Release\eigency_tests.obj
eigency_tests.cpp
c:\program files\python36\lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(12) : Warning Msg: Using deprecated NumPy API, disable it by #defining NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
C:\Users\jacquenot\AppData\Roaming\Python\Python36\site-packages\eigency\eigency_cpp.h(233): warning C4244: 'argument'ÿ: conversion de '__int64' en 'long', perte possible de donn‚es
eigency_tests.cpp(1671): note: voir la r‚f‚rence … l'instanciation de la fonction modŠle 'PyArrayObject *eigency::ndarray<Eigen::Matrix<int,-1,3,1,-1,3>>(const Eigen::PlainObjectBase<Eigen::Matrix<int,-1,3,1,-1,3>> &)' en cours de compilation
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -IC:\Users\jacquenot\AppData\Roaming\Python\Python36\site-packages\eigency -I. "-IC:\Program Files\Python36\lib\site-packages\numpy\core\include" -IC:\Users\jacquenot\AppData\Roaming\Python\Python36\site-packages\eigency\eigen_3.2.8 "-IC:\Program Files\Python36\include" "-IC:\Program Files\Python36\include" "-IC:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\INCLUDE" "-IC:\Program Files (x86)\Windows Kits\10\include\10.0.10240.0\ucrt" "-IC:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\include\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\shared" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\um" "-IC:\Program Files (x86)\Windows Kits\8.1\include\\winrt" /EHsc /Tpcode.cpp /Fobuild\temp.win-amd64-3.6\Release\code.obj
code.cpp
creating D:\eigency_tests_min_example\eigency_tests\build\lib.win-amd64-3.6
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\link.exe /nologo /INCREMENTAL:NO /LTCG /DLL /MANIFEST:EMBED,ID=2 /MANIFESTUAC:NO "/LIBPATH:C:\Program Files\Python36\libs" "/LIBPATH:C:\Program Files\Python36\PCbuild\amd64" "/LIBPATH:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\LIB\amd64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\10\lib\10.0.10240.0\ucrt\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\lib\um\x64" "/LIBPATH:C:\Program Files (x86)\Windows Kits\8.1\lib\winv6.3\um\x64" /EXPORT:PyInit_eigency_tests build\temp.win-amd64-3.6\Release\eigency_tests.obj build\temp.win-amd64-3.6\Release\code.obj /OUT:build\lib.win-amd64-3.6\eigency_tests.cp36-win_amd64.pyd /IMPLIB:build\temp.win-amd64-3.6\Release\eigency_tests.cp36-win_amd64.lib
eigency_tests.obj : warning LNK4197: exportation 'PyInit_eigency_tests' spécifiée à plusieurs reprises ; première spécification utilisée
Création de la bibliothèque build\temp.win-amd64-3.6\Release\eigency_tests.cp36-win_amd64.lib et de l'objet build\temp.win-amd64-3.6\Release\eigency_tests.cp36-win_amd64.exp
Génération de code en cours
Fin de la génération du code
copying build\lib.win-amd64-3.6\eigency_tests.cp36-win_amd64.pyd ->
Currently there is no possibility to map long double matrices to numpy.
Any idea how to do it?
This would be very beneficial to all users as very often matrix exponentials as computed by Eigen benefit a lot of large precision.
I am currently using python.
I would like to ask is there any function to use in eigency for solving sparse matrix equation? If yes, is there a GPU support version also? Is there documentation to see what functions I can call in eigency?
Thank you.
I've been able to install eigency under python 3, but I'm having trouble with python 2.7. Any ideas?
$ pip install eigency
Downloading/unpacking eigency
Downloading eigency-1.75.tar.gz (666kB): 666kB downloaded
Running setup.py egg_info for package eigency
Compiling eigency/conversions.pyx because it changed.
Compiling eigency/core.pyx because it changed.
[1/2] Cythonizing eigency/conversions.pyx
[2/2] Cythonizing eigency/core.pyx
warning: no files found matching 'eigency/*.pyd'
warning: no previously-included files matching 'CMakeLists.txt' found under directory 'eigency/eigen_3.2.8/Eigen'
Requirement already satisfied (use --upgrade to upgrade): numpy in /Library/Python/2.7/site-packages (from eigency)
Requirement already satisfied (use --upgrade to upgrade): cython in /Users/fritz/.virtualenvs/foo/lib/python2.7/site-packages (from eigency)
Installing collected packages: eigency
Running setup.py install for eigency
building 'eigency.conversions' extension
cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -I/Library/Python/2.7/site-packages/numpy/core/include -Ieigency/eigen_3.2.8 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c eigency/conversions.cpp -o build/temp.macosx-10.11-intel-2.7/eigency/conversions.o
c++ -bundle -undefined dynamic_lookup -arch x86_64 -arch i386 -Wl,-F. build/temp.macosx-10.11-intel-2.7/eigency/conversions.o -o build/lib.macosx-10.11-intel-2.7/eigency/conversions.so
building 'eigency.core' extension
cc -fno-strict-aliasing -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch x86_64 -arch i386 -pipe -I/Library/Python/2.7/site-packages/numpy/core/include -Ieigency/eigen_3.2.8 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c eigency/core.cpp -o build/temp.macosx-10.11-intel-2.7/eigency/core.o
In file included from eigency/core.cpp:469:
In file included from eigency/eigency_cpp.h:10:
eigency/conversions_api.h:182:12: warning: 'static' function 'import_eigency__conversions' declared in header file should be declared 'static inline' [-Wunneeded-internal-declaration]
static int import_eigency__conversions(void) {
^
1 warning generated.
In file included from eigency/core.cpp:469:
In file included from eigency/eigency_cpp.h:10:
eigency/conversions_api.h:182:12: warning: 'static' function 'import_eigency__conversions' declared in header file should be declared 'static inline' [-Wunneeded-internal-declaration]
static int import_eigency__conversions(void) {
^
1 warning generated.
c++ -bundle -undefined dynamic_lookup -arch x86_64 -arch i386 -Wl,-F. build/temp.macosx-10.11-intel-2.7/eigency/core.o -o build/lib.macosx-10.11-intel-2.7/eigency/core.so
warning: no files found matching 'eigency/*.pyd'
warning: no previously-included files matching 'CMakeLists.txt' found under directory 'eigency/eigen_3.2.8/Eigen'
Could not find .egg-info directory in install record for eigency
Successfully installed eigency
Cleaning up...
Now my package using eigency fails to build with an error like
$ pip install -e $MY_PACKAGE
...
/Users/fritz/.virtualenvs/foo/lib/python2.7/site-packages/eigency/eigen_3.2.8/Eigen/Core:15:10: fatal error: 'src/Core/util/DisableStupidWarnings.h' file not found
and indeed the Eigen source is nowhere to be found
$ tree $VIRTUAL_ENV/lib/python2.7/site-packages/eigency
/Users/fritz/.virtualenvs/foo/lib/python2.7/site-packages/eigency
├── __init__.py
├── __init__.pyc
├── conversions.h
├── conversions.pxd
├── conversions.pyx
├── conversions.so
├── conversions_api.h
├── core.pxd
├── core.pyx
├── core.so
├── eigen_3.2.8
│ └── Eigen
│ ├── Array
│ ├── Cholesky
│ ├── CholmodSupport
│ ├── Core
│ ├── Dense
│ ├── Eigen
│ ├── Eigen2Support
│ ├── Eigenvalues
│ ├── Geometry
│ ├── Householder
│ ├── IterativeLinearSolvers
│ ├── Jacobi
│ ├── LU
│ ├── LeastSquares
│ ├── MetisSupport
│ ├── OrderingMethods
│ ├── PaStiXSupport
│ ├── PardisoSupport
│ ├── QR
│ ├── QtAlignedMalloc
│ ├── SPQRSupport
│ ├── SVD
│ ├── Sparse
│ ├── SparseCholesky
│ ├── SparseCore
│ ├── SparseLU
│ ├── SparseQR
│ ├── StdDeque
│ ├── StdList
│ ├── StdVector
│ ├── SuperLUSupport
│ └── UmfPackSupport
└── eigency_cpp.h
Thanks for a great package!
Hello, before start I would like to give thanks for the work you have done. I think there are some bugs.
I have this example:
Eigen::ArrayXXd create_mat()
{
Eigen::ArrayXXd sigms(3, 3);
for(int n = 0; n<sigms.cols(); n++)
for (int m = 0; m < sigms.rows(); m++)
sigms(m, n) = 1.0;
return sigms;
}
And have two versions of correspongind cython wrapping as in a file called kernel.pyx:
def create_mat1():
cdef ArrayXXd sigms = create_mat()
return ndarray(sigms)
def create_mat1():
return ndarray(create_mat())
In my python code a have the following:
import kernel
m1 = kernel.create_mat1()
m2 = kernel.create_mat2()
print(m1)
print(m2)
The output is the following:
[[ 0.00000000e+000 0.00000000e+000 0.00000000e+000]
[ 0.00000000e+000 0.00000000e+000 0.00000000e+000]
[ 0.00000000e+000 0.00000000e+000 0.00000000e+000]]
[[ 1. 1. 1.]
[ 1. 1. 1.]
[ 1. 1. 1.]]
It is clear that there is something wrong. Both functions should give the same result.
Hello, my name is Bradley. I've recently been given collaborator access by Wouter (owner) to help with maintaining this package as it's been neglected since early 2018. I have already merged in PR #27 and #41 which should fix the current install issues encountered when using the 1.77 release on PyPi.
My immediate objective is to spin a new 1.78 release as soon as possible with the above mentioned critical fixes and then begin work on quality of life improvements.
3.2.8
but the eigency version is 1.77
. It would be nice if there was a clear correlation between the version of eigency and the underlying eigen library. I am considering switching to a 4-number version for eigency where the first 3 numbers match the version of eigen (ex: 3.2.8.x
) and the last number is a simple revision number for eigency itself. With this versioning system, eigency could support and distribute multiple bundled versions and potentially even support non-bundled (system-installed) eigen (indicated with an eigency version of 0.0.0.x
).The current build on conda-forge is still version 3.4.0.0 and does not include the eigen source folder.
The 'j' literal suffix is GCC-specific syntax for complex numbers:
https://gcc.gnu.org/onlinedocs/gcc/Complex.html
This syntax should be swapped for a standard compliant syntax so we can build on Windows and MacOS.
Thanks for this awesome package. I'm wondering if there is a way around having import eigency
in the setup.py file for my project, since setup.py will fail if eigency is not installed, even with install_requires=['eigency']
specified (i'm using setuptools here).
In Eigen 3.3.3, the macro EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION expands to either Eigen::RowMajor or Eigen::ColMajor as has been introduced by this commit
But in eigency, in eigen_cpp.h, DenseBase is templated using Eigen::EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION, which after expansion yields a
error: ‘Eigen::Eigen’ has not been declared
#define EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION Eigen::ColMajor
a workaround when building eigency with eigen 3.3.3 will be
sed -i 's,Eigen::EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION,EIGEN_DEFAULT_MATRIX_STORAGE_ORDER_OPTION,' eigency/eigency_cpp.h
python setup.py install
Thanks again for this amazing extension
Hi, I'm trying to install eigency on my machine. For some reason it does not work. I tried with Python 3.8 and 3.7 and get the same error, see below the full log:
> pip install eigency
Collecting eigency
Using cached eigency-1.77.tar.gz (678 kB)
Requirement already satisfied: numpy in /home/patrick/.pyenv/versions/3.8.2/lib/python3.8/site-packages (from eigency) (1.18.2)
Installing collected packages: eigency
Running setup.py install for eigency ... error
ERROR: Command errored out with exit status 1:
command: /home/patrick/.pyenv/versions/3.8.2/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-3cdvjv8m/eigency/setup.py'"'"'; __file__='"'"'/tmp/pip-install-3cdvjv8m/eigency/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-z_dif970/install-record.txt --single-version-externally-managed --compile --install-headers /home/patrick/.pyenv/versions/3.8.2/include/python3.8/eigency
cwd: /tmp/pip-install-3cdvjv8m/eigency/
Complete output (364 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-3.8
creating build/lib.linux-x86_64-3.8/eigency
copying eigency/__init__.py -> build/lib.linux-x86_64-3.8/eigency
running egg_info
writing eigency.egg-info/PKG-INFO
writing dependency_links to eigency.egg-info/dependency_links.txt
writing requirements to eigency.egg-info/requires.txt
writing top-level names to eigency.egg-info/top_level.txt
reading manifest file 'eigency.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching 'eigency/*.pyd'
warning: no previously-included files found matching 'eigency/*.cpp'
warning: no previously-included files matching 'CMakeLists.txt' found under directory 'eigency/eigen_3.2.8/Eigen'
writing manifest file 'eigency.egg-info/SOURCES.txt'
copying eigency/conversions.pxd -> build/lib.linux-x86_64-3.8/eigency
copying eigency/conversions.pyx -> build/lib.linux-x86_64-3.8/eigency
copying eigency/conversions_api.h -> build/lib.linux-x86_64-3.8/eigency
copying eigency/core.pxd -> build/lib.linux-x86_64-3.8/eigency
copying eigency/core.pyx -> build/lib.linux-x86_64-3.8/eigency
copying eigency/eigency_cpp.h -> build/lib.linux-x86_64-3.8/eigency
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8
copying eigency/eigen_3.2.8/COPYING.BSD -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8
copying eigency/eigen_3.2.8/COPYING.GPL -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8
copying eigency/eigen_3.2.8/COPYING.LGPL -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8
copying eigency/eigen_3.2.8/COPYING.MINPACK -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8
copying eigency/eigen_3.2.8/COPYING.MPL2 -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8
copying eigency/eigen_3.2.8/COPYING.README -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Array -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Cholesky -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/CholmodSupport -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Core -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Dense -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Eigen -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Eigen2Support -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Eigenvalues -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Geometry -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Householder -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/IterativeLinearSolvers -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Jacobi -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/LU -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/LeastSquares -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/MetisSupport -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/OrderingMethods -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/PaStiXSupport -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/PardisoSupport -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/QR -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/QtAlignedMalloc -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/SPQRSupport -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/SVD -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/Sparse -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/SparseCholesky -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/SparseCore -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/SparseLU -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/SparseQR -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/StdDeque -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/StdList -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/StdVector -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/SuperLUSupport -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
copying eigency/eigen_3.2.8/Eigen/UmfPackSupport -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Cholesky
copying eigency/eigen_3.2.8/Eigen/src/Cholesky/LDLT.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Cholesky
copying eigency/eigen_3.2.8/Eigen/src/Cholesky/LLT.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Cholesky
copying eigency/eigen_3.2.8/Eigen/src/Cholesky/LLT_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Cholesky
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/CholmodSupport
copying eigency/eigen_3.2.8/Eigen/src/CholmodSupport/CholmodSupport.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/CholmodSupport
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Array.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/ArrayBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/ArrayWrapper.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Assign.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Assign_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/BandMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Block.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/BooleanRedux.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/CommaInitializer.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/CoreIterators.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/CwiseBinaryOp.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/CwiseNullaryOp.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/CwiseUnaryOp.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/CwiseUnaryView.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/DenseBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/DenseCoeffsBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/DenseStorage.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Diagonal.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/DiagonalMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/DiagonalProduct.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Dot.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/EigenBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Flagged.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/ForceAlignedAccess.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Functors.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Fuzzy.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/GeneralProduct.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/GenericPacketMath.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/GlobalFunctions.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/IO.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Map.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/MapBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/MathFunctions.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Matrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/MatrixBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/NestByValue.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/NoAlias.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/NumTraits.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/PermutationMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/PlainObjectBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/ProductBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Random.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Redux.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Ref.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Replicate.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/ReturnByValue.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Reverse.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Select.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/SelfAdjointView.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/SelfCwiseBinaryOp.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/SolveTriangular.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/StableNorm.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Stride.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Swap.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Transpose.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Transpositions.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/TriangularMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/VectorBlock.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/VectorwiseOp.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
copying eigency/eigen_3.2.8/Eigen/src/Core/Visitor.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/AltiVec
copying eigency/eigen_3.2.8/Eigen/src/Core/arch/AltiVec/Complex.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/AltiVec
copying eigency/eigen_3.2.8/Eigen/src/Core/arch/AltiVec/PacketMath.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/AltiVec
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/Default
copying eigency/eigen_3.2.8/Eigen/src/Core/arch/Default/Settings.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/Default
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/NEON
copying eigency/eigen_3.2.8/Eigen/src/Core/arch/NEON/Complex.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/NEON
copying eigency/eigen_3.2.8/Eigen/src/Core/arch/NEON/PacketMath.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/NEON
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/SSE
copying eigency/eigen_3.2.8/Eigen/src/Core/arch/SSE/Complex.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/SSE
copying eigency/eigen_3.2.8/Eigen/src/Core/arch/SSE/MathFunctions.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/SSE
copying eigency/eigen_3.2.8/Eigen/src/Core/arch/SSE/PacketMath.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/arch/SSE
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/CoeffBasedProduct.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/GeneralBlockPanelKernel.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/GeneralMatrixMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/GeneralMatrixMatrix_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/GeneralMatrixVector.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/GeneralMatrixVector_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/Parallelizer.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/SelfadjointMatrixMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/SelfadjointMatrixMatrix_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/SelfadjointMatrixVector.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/SelfadjointMatrixVector_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/SelfadjointProduct.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/SelfadjointRank2Update.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/TriangularMatrixMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/TriangularMatrixMatrix_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/TriangularMatrixVector.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/TriangularMatrixVector_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/TriangularSolverMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/TriangularSolverMatrix_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
copying eigency/eigen_3.2.8/Eigen/src/Core/products/TriangularSolverVector.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/products
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/BlasUtil.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/Constants.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/DisableStupidWarnings.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/ForwardDeclarations.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/MKL_support.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/Macros.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/Memory.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/Meta.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/NonMPL2.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/ReenableStupidWarnings.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/StaticAssert.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
copying eigency/eigen_3.2.8/Eigen/src/Core/util/XprHelper.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Core/util
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Block.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Cwise.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/CwiseOperators.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/LU.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Lazy.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/LeastSquares.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Macros.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/MathFunctions.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Memory.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Meta.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Minor.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/QR.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/SVD.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/TriangularSolver.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/VectorBlock.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/AlignedBox.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/All.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/AngleAxis.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/Hyperplane.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/ParametrizedLine.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/Quaternion.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/Rotation2D.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/RotationBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/Scaling.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/Transform.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry/Translation.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigen2Support/Geometry
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/ComplexEigenSolver.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/ComplexSchur.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/ComplexSchur_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/EigenSolver.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/HessenbergDecomposition.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/RealQZ.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/RealSchur.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/RealSchur_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
copying eigency/eigen_3.2.8/Eigen/src/Eigenvalues/Tridiagonalization.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Eigenvalues
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/AlignedBox.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/AngleAxis.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/EulerAngles.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/Homogeneous.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/Hyperplane.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/OrthoMethods.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/ParametrizedLine.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/Quaternion.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/Rotation2D.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/RotationBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/Scaling.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/Transform.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/Translation.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
copying eigency/eigen_3.2.8/Eigen/src/Geometry/Umeyama.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry/arch
copying eigency/eigen_3.2.8/Eigen/src/Geometry/arch/Geometry_SSE.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Geometry/arch
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Householder
copying eigency/eigen_3.2.8/Eigen/src/Householder/BlockHouseholder.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Householder
copying eigency/eigen_3.2.8/Eigen/src/Householder/Householder.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Householder
copying eigency/eigen_3.2.8/Eigen/src/Householder/HouseholderSequence.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Householder
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers
copying eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers
copying eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers
copying eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers
copying eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers
copying eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/IterativeLinearSolvers
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Jacobi
copying eigency/eigen_3.2.8/Eigen/src/Jacobi/Jacobi.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/Jacobi
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/LU
copying eigency/eigen_3.2.8/Eigen/src/LU/Determinant.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/LU
copying eigency/eigen_3.2.8/Eigen/src/LU/FullPivLU.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/LU
copying eigency/eigen_3.2.8/Eigen/src/LU/Inverse.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/LU
copying eigency/eigen_3.2.8/Eigen/src/LU/PartialPivLU.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/LU
copying eigency/eigen_3.2.8/Eigen/src/LU/PartialPivLU_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/LU
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/LU/arch
copying eigency/eigen_3.2.8/Eigen/src/LU/arch/Inverse_SSE.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/LU/arch
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/MetisSupport
copying eigency/eigen_3.2.8/Eigen/src/MetisSupport/MetisSupport.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/MetisSupport
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/OrderingMethods
copying eigency/eigen_3.2.8/Eigen/src/OrderingMethods/Amd.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/OrderingMethods
copying eigency/eigen_3.2.8/Eigen/src/OrderingMethods/Eigen_Colamd.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/OrderingMethods
copying eigency/eigen_3.2.8/Eigen/src/OrderingMethods/Ordering.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/OrderingMethods
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/PaStiXSupport
copying eigency/eigen_3.2.8/Eigen/src/PaStiXSupport/PaStiXSupport.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/PaStiXSupport
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/PardisoSupport
copying eigency/eigen_3.2.8/Eigen/src/PardisoSupport/PardisoSupport.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/PardisoSupport
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/QR
copying eigency/eigen_3.2.8/Eigen/src/QR/ColPivHouseholderQR.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/QR
copying eigency/eigen_3.2.8/Eigen/src/QR/ColPivHouseholderQR_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/QR
copying eigency/eigen_3.2.8/Eigen/src/QR/FullPivHouseholderQR.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/QR
copying eigency/eigen_3.2.8/Eigen/src/QR/HouseholderQR.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/QR
copying eigency/eigen_3.2.8/Eigen/src/QR/HouseholderQR_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/QR
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SPQRSupport
copying eigency/eigen_3.2.8/Eigen/src/SPQRSupport/SuiteSparseQRSupport.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SPQRSupport
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SVD
copying eigency/eigen_3.2.8/Eigen/src/SVD/JacobiSVD.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SVD
copying eigency/eigen_3.2.8/Eigen/src/SVD/JacobiSVD_MKL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SVD
copying eigency/eigen_3.2.8/Eigen/src/SVD/UpperBidiagonalization.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SVD
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCholesky
copying eigency/eigen_3.2.8/Eigen/src/SparseCholesky/SimplicialCholesky.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCholesky
copying eigency/eigen_3.2.8/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCholesky
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/AmbiVector.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/CompressedStorage.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/MappedSparseMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseBlock.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseColEtree.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseCwiseBinaryOp.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseCwiseUnaryOp.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseDenseProduct.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseDiagonalProduct.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseDot.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseFuzzy.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseMatrixBase.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparsePermutation.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseProduct.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseRedux.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseSelfAdjointView.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseSparseProductWithPruning.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseTranspose.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseTriangularView.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseUtil.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseVector.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/SparseView.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
copying eigency/eigen_3.2.8/Eigen/src/SparseCore/TriangularSolver.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseCore
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLUImpl.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_Memory.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_Structs.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_Utils.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_column_bmod.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_column_dfs.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_gemm_kernel.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_kernel_bmod.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_panel_bmod.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_panel_dfs.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_pivotL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_pruneL.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
copying eigency/eigen_3.2.8/Eigen/src/SparseLU/SparseLU_relax_snode.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseLU
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseQR
copying eigency/eigen_3.2.8/Eigen/src/SparseQR/SparseQR.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SparseQR
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/StlSupport
copying eigency/eigen_3.2.8/Eigen/src/StlSupport/StdDeque.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/StlSupport
copying eigency/eigen_3.2.8/Eigen/src/StlSupport/StdList.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/StlSupport
copying eigency/eigen_3.2.8/Eigen/src/StlSupport/StdVector.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/StlSupport
copying eigency/eigen_3.2.8/Eigen/src/StlSupport/details.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/StlSupport
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SuperLUSupport
copying eigency/eigen_3.2.8/Eigen/src/SuperLUSupport/SuperLUSupport.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/SuperLUSupport
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/UmfPackSupport
copying eigency/eigen_3.2.8/Eigen/src/UmfPackSupport/UmfPackSupport.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/UmfPackSupport
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/misc
copying eigency/eigen_3.2.8/Eigen/src/misc/Image.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/misc
copying eigency/eigen_3.2.8/Eigen/src/misc/Kernel.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/misc
copying eigency/eigen_3.2.8/Eigen/src/misc/Solve.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/misc
copying eigency/eigen_3.2.8/Eigen/src/misc/SparseSolve.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/misc
copying eigency/eigen_3.2.8/Eigen/src/misc/blas.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/misc
creating build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/plugins
copying eigency/eigen_3.2.8/Eigen/src/plugins/ArrayCwiseBinaryOps.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/plugins
copying eigency/eigen_3.2.8/Eigen/src/plugins/ArrayCwiseUnaryOps.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/plugins
copying eigency/eigen_3.2.8/Eigen/src/plugins/BlockMethods.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/plugins
copying eigency/eigen_3.2.8/Eigen/src/plugins/CommonCwiseBinaryOps.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/plugins
copying eigency/eigen_3.2.8/Eigen/src/plugins/CommonCwiseUnaryOps.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/plugins
copying eigency/eigen_3.2.8/Eigen/src/plugins/MatrixCwiseBinaryOps.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/plugins
copying eigency/eigen_3.2.8/Eigen/src/plugins/MatrixCwiseUnaryOps.h -> build/lib.linux-x86_64-3.8/eigency/eigen_3.2.8/Eigen/src/plugins
running build_ext
building 'eigency.conversions' extension
creating build/temp.linux-x86_64-3.8
creating build/temp.linux-x86_64-3.8/eigency
gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/home/patrick/.pyenv/versions/3.8.2/lib/python3.8/site-packages/numpy/core/include -I/tmp/pip-install-3cdvjv8m/eigency/eigency/eigen_3.2.8 -I/home/patrick/.pyenv/versions/3.8.2/include/python3.8 -c eigency/conversions.cpp -o build/temp.linux-x86_64-3.8/eigency/conversions.o
gcc: error: eigency/conversions.cpp: No such file or directory
gcc: fatal error: no input files
compilation terminated.
error: command 'gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /home/patrick/.pyenv/versions/3.8.2/bin/python3.8 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-3cdvjv8m/eigency/setup.py'"'"'; __file__='"'"'/tmp/pip-install-3cdvjv8m/eigency/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-z_dif970/install-record.txt --single-version-externally-managed --compile --install-headers /home/patrick/.pyenv/versions/3.8.2/include/python3.8/eigency Check the logs for full command output.
Hello,
A have a code in c++ that compute a variable size vector. then this vector is send using eigency to python.
For some data the algorithm create an empty vector, then when a tried to send this empty vector to python I get the following message:
return ndarray(self.dn_cpp.ComputeVectorSometimeEmptyVector())
File "eigency/conversions.pyx", line 67, in eigency.conversions.ndarray_long_F
ValueError: Cannot create cython.array from NULL pointer
The problem is that at the cython level I have only a PlainObjectBase, with no possibility to test the size (rows() and cols()) to handle this situation correctly.
Any ideas on how can treat this problem.
Felipe
I have a C++ function which I want to run from Python. For this I use Cython.
My C++ function relies heavily on Eigen matrices which I map to Python's Numpy matrices using Eigency.
I cannot get this to work for the case where I have a list of Numpy matrices.
What does works (mapping a plain Numpy matrix to an Eigen matrix):
I have a C++ function which in the header (Header.h) looks like:
float MyCppFunction(Eigen::Map<Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>> &inputMatrix)
In my CythonFile.pyx file I have (and create the maps using Eigency as explained here):
cdef extern from "Header.h":
cdef void _MyCppFunction "MyCppFunction"(FlattenedMapWithOrder[Matrix, float, Dynamic, Dynamic, RowMajor] &)
and
def my_python_function(np.ndarray[ndim=2, dtype=np.float32_t] my_matrix)
return _MyCppFunction(FlattenedMapWithOrder[Matrix, float, Dynamic, Dynamic, RowMajor](my_matrix))
I can build this module using Cython and call my_python_function
successfully from Python.
What does not work (mapping a list of Numpy matrices to a vector of Eigen matrices):
Now I try to do the same thing, but for a list of matrices. I cannot get this to work.
What I have:
The C++ function in the header (Header.h) looks like:
float MyCppFunction(std::vector<Eigen::Map<Eigen::Matrix<float, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor>>> &inputMatrixList)
In my CythonFile.pyx file I have:
cdef extern from "Header.h":
cdef void _MyCppFunction "MyCppFunction"(vector[FlattenedMapWithOrder[Matrix, float, Dynamic, Dynamic, RowMajor]] &)
and
def my_python_function(list my_matrix_list)
cdef vector[FlattenedMapWithOrder[Matrix, float, Dynamic, Dynamic, RowMajor]] map
for matrix in my_matrix_list:
map.push_back(FlattenedMapWithOrder[Matrix, float, Dynamic, Dynamic, RowMajor](matrix))
return _MyCppFunction(map)
This won't compile unfortunately.
This concept does compile and run when I, for example, simply use a list
of int
which I want to map to a std::vector<int>
. It does not work however, when I map a list of Numpy-matrices to a vector of Eigen matrices (which is the case I have denoted above).
The Error I get:
The error I get during compilation:
error C2664: 'void MyCppFunction(std::vector<Eigen::Map<Eigen::Matrix<float,-1,-1,1,-1,-1>,0,Eigen::Stride<0,0>>,std::allocator<Eigen::Map<Eigen::Matrix<float,-1,-1,1,-1,-1>,0,Eigen::Stride<0,0>>>> &)': cannot convert argument 1 from 'std::vector<eigency::FlattenedMap<Eigen::Matrix,float,-1,-1,1,0,0,0,-1,-1>,std::allocator<eigency::FlattenedMap<Eigen::Matrix,float,-1,-1,1,0,0,0,-1,-1>>>' to 'std::vector<Eigen::Map<Eigen::Matrix<float,-1,-1,1,-1,-1>,0,Eigen::Stride<0,0>>,std::allocator<Eigen::Map<Eigen::Matrix<float,-1,-1,1,-1,-1>,0,Eigen::Stride<0,0>>>> &' ./Header.h(21): note: see declaration of 'MyCppFunction'
My analysis so far:
This works as expected, so: I can assign a python list
of int
to a C++ std::vector<int>
.
This works also as expected, so: I can assing a variable of type eigency::FlattenedMap<Eigen::Matrix,float,-1,-1,1,0,0,0,-1,-1>
to a variable of type Eigen::Map<Eigen::Matrix<float,-1,-1,1,-1,-1>,0,Eigen::Stride<0,0>>
.
When I wrap the latter two variables in a list/vector, then I cannot assign these two variables:
std::vector<eigency::FlattenedMap<Eigen::Matrix,float,-1,-1,1,0,0,0,-1,-1>, std::allocator<eigency:...>
to a variable of type std::vector<Eigen::Map<Eigen::Matrix<float,-1,-1,1,-1,-1>,0,Eigen::Stride<0,0>>, std::allocator<Eigen:...>
.
Maybe it has to do with the allocator part but I don't know since I'm not really a C++ expert.
Does anybody has a solution to map a list of Numpy matrices to a vector of Eigen matrices? Preferably, following the same patterns as above but other solutions are also welcome.
Thank you very much!
Hi, I attempted a pip install eigency
(v0.61) on python 3.5.1 and received the following error in eigency/setup.py", line 44
if dist.command_obj.has_key('install'):
AttributeError: 'dict' object has no attribute 'has_key'
Apparently dict.has_key
was removed in python 3.x (one would use in
instead).
Is this intentional? Is python 3 supported?
Thanks,
Hamza
Is there any chance to implement complex conversion to deal with complex types?
Hey, thanks a lot for Eigency, it's exactly what I need.
While playing around with it and getting it work, I was really confused by the fact that normal integers become zero when passed to C++.
I made a little function (copy of the one from readme) which outputs the size, cols and rows as well as the matrix element at a time.
As you can see here, it works great for float:
Is this intentional? What am I doing wrong?
Also, I'm using std::to_string while printing it through a python function, I don't think that could be the problem.
Thanks
I noticed that you have to install numpy before being able to install eigency, otherwise the installations fails (see log below). This is due to eigency using numpy in the build phase and not (yet) specifying build system requirements in a pyproject.toml as described by PEP517 / PEP518.
This can result in libraries depending on eigency also failing to install when they are installed without numpy already present, even if those libraries specify numpy as build system requirement.
Error log:
> pip install eigency
Collecting eigency
Using cached eigency-1.77.tar.gz (678 kB)
ERROR: Command errored out with exit status 1:
command: /home/patrick/.pyenv/versions/3.7.7/envs/pupil/bin/python3.7 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-bfnvr5bv/eigency/setup.py'"'"'; __file__='"'"'/tmp/pip-install-bfnvr5bv/eigency/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-bfnvr5bv/eigency/pip-egg-info
cwd: /tmp/pip-install-bfnvr5bv/eigency/
Complete output (7 lines):
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-install-bfnvr5bv/eigency/setup.py", line 6, in <module>
import eigency
File "/tmp/pip-install-bfnvr5bv/eigency/eigency/__init__.py", line 2, in <module>
import numpy as np
ModuleNotFoundError: No module named 'numpy'
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
Hi,
I have a failing test with numpy 1.12.0 and python 3.6.0
$ python run_tests.py
._frozen_importlib:205: ImportWarning: can't resolve package from __spec__ or __package__, falling back on __name__ and __path__
E........................
======================================================================
ERROR: test_function_type_char (__main__.TestEigency)
----------------------------------------------------------------------
Traceback (most recent call last):
File "run_tests.py", line 166, in test_function_type_char
mat_out = eigency_tests.function_type_uint8(mat_in)
File "eigency_tests/eigency_tests.pyx", line 140, in eigency_tests.function_type_uint8 (eigency_tests/eigency_tests.cpp:3017)
return ndarray(_function_type_char(FlattenedMap[Array, char, Dynamic, Dynamic](array)))
File "eigency/conversions.pyx", line 164, in eigency.conversions.ndarray_copy_char_F (eigency/conversions.cpp:6998)
File "<...>/lib/python3.6/site-packages/numpy/core/numeric.py", line 531, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: invalid literal for int() with base 10: '\x01'
----------------------------------------------------------------------
Ran 26 tests in 0.010s
FAILED (errors=1)
Is it a known issue ?
Hello,
Thank you for a great package and set of examples!
I want to use eigency to build a package, and I learned from/modified the code in tests to do most of what I need to do.
I haven't been able to figure out if I use eigency to map Eigen SparseMatrix from Python. Is that possible? If so, where can I find an example?
Thanks for any pointers!
Hi, I found some compile error when trying to wrap some Eigen 3.3 functions. Solved the problem by replacing the Eigen 3.2.8 Library in this package to Eigen 3.3.7 and it worked in my case. I am not sure if you are still updating this package, but it would be nice if you can update the Eigen library here. Thanks!
Hi,
First, Thank you so much for creating this library. It is an extremely useful tool for Cython users.
Now, I was trying to use basic vector and matrix functions in my test C++ wrapping project for cython.
But when I compile my code, I get the following error:
build/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_view<double>(double*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:27: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_view(double*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:27: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_copy<double>(double const*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:39: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_copy(double const*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:39: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_view<float>(float*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:47: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_view(float*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:47: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_copy<float>(float const*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:54: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_copy(float const*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:54: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_view<long>(long*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:62: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_view(long*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:62: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_copy<long>(long const*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:69: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_copy(long const*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:69: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_view<int>(int*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:77: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_view(int*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:77: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_copy<int>(int const*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:84: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_copy(int const*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:84: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_view<short>(short*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:92: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_view(short*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:92: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_copy<short>(short const*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:99: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_copy(short const*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:99: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_view<char>(char*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:107: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_view(char*, long, long, bool, long, long)'
build/temp.linux-x86_64-3.4/cytest2.o:/usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:107: first defined herebuild/temp.linux-x86_64-3.4/cytest.o: In function
tagPyArrayObject_fields* eigency::_ndarray_copy<char>(char const*, long, long, bool, long, long)': /usr/local/lib/python3.4/dist-packages/eigency/eigency_cpp.h:114: multiple definition of
tagPyArrayObject_fields* eigency::_ndarray_copy(char const*, long, long, bool, long, long)'
I have two files pyx file cytest.pyx and cytest2.pyx. cytest imports cytest2 to use functions defined there. But both cytest and cytest2 requires to use eigency library and hence I have from eigency.core import * in both files.
I have written the setup file as you have suggested in readme and it is able to locate eigency library.
Can you suggest why this is happening?
Thanks
Thank you for the great library!
Is it possible to use properties and setters with eigency
? I'm sorry if this isn't a good question; I'm new to cython. A minimal example that doesn't work is below. Hopefully it will be clear what I'm trying to do.
// basic.h:
#include <Eigen/Dense>
class Parameters {
public:
// Parameters:
int k_reg;
Eigen::VectorXd vec;
// Methods:
Parameters(int k_reg): k_reg(k_reg) {
vec = Eigen::VectorXd::Ones(k_reg);
};
Parameters() {
Parameters(1);
};
};
# autodiff.pyx
# distutils: language = c++
import eigency
from eigency.core cimport *
cdef extern from "basic.h":
cdef cppclass Parameters:
Parameters() except +
Parameters(int) except +
int k_reg
VectorXd vec
# This will be exposed to Python
cdef class PyParameters:
cdef Parameters c_Parameters # hold a C++ instance which we're wrapping
def __cinit__(self, int k_reg):
self.c_Parameters = Parameters(k_reg)
def __cinit__(self):
self.c_Parameters = Parameters()
@property
def k_reg(self):
return self.c_Parameters.k_reg
@k_reg.setter
def k_reg(self, int k_reg):
def __set__(self, k_reg): self.c_rect.k_reg = k_reg
# Doesn't work:
@property
def vec(self):
return self.c_Parameters.vec
@vec.setter
def vec(self, np.ndarray vec):
cdef Map[VectorXd] c_vec = vec
def __set__(self, vec): self.c_Parameters.vec = c_vec
# def __set__(self, vec): self.c_Parameters.vec = Map[VectorXd](vec) # Also doesn't work
The error is:
Error compiling Cython file:
------------------------------------------------------------
...
def __set__(self, k_reg): self.c_rect.k_reg = k_reg
# Doesn't work:
@property
def vec(self):
return self.c_Parameters.vec
^
------------------------------------------------------------
autodiff.pyx:54:32: Cannot convert 'VectorXd' to Python object
Error compiling Cython file:
------------------------------------------------------------
...
@property
def vec(self):
return self.c_Parameters.vec
@vec.setter
def vec(self, np.ndarray vec):
cdef Map[VectorXd] c_vec = vec
^
------------------------------------------------------------
autodiff.pyx:57:38: Cannot convert Python object to 'Map[VectorXd]'
Error compiling Cython file:
------------------------------------------------------------
...
def vec(self):
return self.c_Parameters.vec
@vec.setter
def vec(self, np.ndarray vec):
cdef Map[VectorXd] c_vec = vec
def __set__(self, vec): self.c_Parameters.vec = c_vec
^
------------------------------------------------------------
autodiff.pyx:58:61: Cannot convert 'Map[VectorXd]' to Python object
The archive eigency-1.74.tar.gz does not contain the eigency/eigen_3.2.8
directory, therefore the build fails.
I might have missed something in #12, although running python setup.py sdist
locally gives the expected result for me.
Hi, it seems that complex matrices may be broken with the current master. Here is an example:
test.pyx
:
from eigency.core cimport *
cdef extern from "test.h":
cdef MatrixXcd _test_matrix "test_matrix"(Map[MatrixXcd] &)
def test_matrix(np.ndarray array):
return ndarray_copy(_test_matrix(Map[MatrixXcd](array)))
test.h
:
#pragma once
#include <eigen3/Eigen/Dense>
Eigen::MatrixXcd test_matrix(const Eigen::MatrixXcd&);
test.cpp
:
#include "test.h"
Eigen::MatrixXcd test_matrix(const Eigen::MatrixXcd& result) {
return result;
}
Then in python:
import test_matrix
print test_matrix.test_matrix(np.zeros((3, 3)) + 0.4)
The output is not as expected (0.4 + 0.0j
for all entries):
[[ 4.00000000e-001 +4.00000000e-001j 4.00000000e-001 +4.00000000e-001j
6.93540132e-310 +6.93540132e-310j]
[ 4.00000000e-001 +4.00000000e-001j 4.00000000e-001 +6.95335581e-309j
0.00000000e+000 +6.93540132e-310j]
[ 4.00000000e-001 +4.00000000e-001j 6.93540132e-310 +0.00000000e+000j
6.93540132e-310 +0.00000000e+000j]]
However, if I do something like the following:
m = np.zeros((3, 3)) + 0.4
print test_matrix.test_matrix(m.astype(np.complex128))
I get the correct output:
[[ 0.4+0.j 0.4+0.j 0.4+0.j]
[ 0.4+0.j 0.4+0.j 0.4+0.j]
[ 0.4+0.j 0.4+0.j 0.4+0.j]]
While this example shows mixing real with complex types, it also happens between different complex types, like complex64
mixed with complex128
.
Is this expected behavior?
Hi,
First I have been using eigency for a few months now and I absolutely love it! However, I see a repeated strange issue which occurs when I try to pass row matrices (that is, numpy arrays with a shape of (1, N)
) from cython to c++ via Eigency.
When I pass a matrix of shape (M, N)
the shape of the Eigen matrix is also (M, N)
as it should be. But when I pass a matrix of shape (1, N)
the Eigen matrix ends up transposed, having shape (N, 1)
.
I'm aware of the common problem with non-fortran-order arrays appearing to be transposed once they reach C++, and as far as I can tell that's not what's happening here as it happens even if I create my arrays with order='F'
I've attached some reproducing code. On my machine I compiled this with the commands:
g++-6 -I /usr/local/include/eigen3 -c cpp_print_shape.cpp
python setup.py build_ext --inplace
Running python test.py
then shows the problematic behaviour I've been seeing.
Please let me know if I'm doing something wrong here, or if this is a bug!
Line 28 in aae9801
I get the error c1xx: fatal error C1083: Cannot open source file: 'eigency/conversions.cpp': No such file or directory
, when trying to install the package without having cython installed.
Hello,
I discover that the version of eigen in the pypi package is 3.2.8:
(image from https://gitlab.com/libeigen/eigen/-/releases/3.2.8)
this is a very old version of eigen. not compatible with std:c++17 ...
it is possible to update the version?
Thanks
Hi to all,
this message is to announce that I just release eigency for python3.12 on conda-forge.
Take a look at :
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.