Path to this page:
./
math/eigen3,
C++ template library for linear algebra
Branch: CURRENT,
Version: 3.3.4,
Package name: eigen33.3.4,
Maintainer: pkgsrcusersEigen 3 is a C++ template library for linear algebra: vectors, matrices, and
related algorithms. It is:
* Versatile. Eigen handles, without code duplication, and in a completely
integrated way:
o both fixedsize and dynamicsize matrices and vectors.
o both dense and sparse (the latter is still experimental) matrices and
vectors.
o both plain matrices/vectors and abstract expressions.
o both columnmajor (the default) and rowmajor matrix storage.
o both basic matrix/vector manipulation and many more advanced, specialized
modules providing algorithms for linear algebra, geometry, quaternions,
or advanced array manipulation.
* Fast.
o Expression templates allow to intelligently remove temporaries and enable
lazy evaluation, when that is appropriate  Eigen takes care of this
automatically and handles aliasing too in most cases.
o Explicit vectorization is performed for the SSE (2 and later) and AltiVec
instruction sets, with graceful fallback to nonvectorized code.
Expression templates allow to perform these optimizations globally for
whole expressions.
o With fixedsize objects, dynamic memory allocation is avoided, and the
loops are unrolled when that makes sense.
o For large matrices, special attention is paid to cachefriendliness.
* Elegant. The API is extremely clean and expressive, thanks to expression
templates. Implementing an algorithm on top of Eigen feels like just copying
pseudocode. You can use complex expressions and still rely on Eigen to
produce optimized code: there is no need for you to manually decompose
expressions into small steps.
* Compilerfriendy. Eigen has very reasonable compilation times at least with
GCC, compared to other C++ libraries based on expression templates and heavy
metaprogramming. Eigen is also standard C++ and supports various compilers.
Required to build:[
pkgtools/cwrappers]
Master sites:
Version history: (Expand)
 (20170914) Updated to version: eigen33.3.4
 (20160914) Updated to version: eigen33.2.9
 (20160903) Updated to version: eigen33.2.7nb1
 (20151115) Updated to version: eigen33.2.7
 (20131006) Updated to version: eigen33.1.4
 (20130530) Updated to version: eigen33.1.3
CVS history: (Expand)
20170914 13:21:03 by Patrick Welche  Files touched by this commit (5)  
Log message:
Update eigen3 to 3.3.4
Changes that might impact existing code
Eigen 3.3 fixes a few shortcomings that might impact existing code:
* Eigen 3.3 clarifies the usage of the Index type in SparseMatrix,
PermutationMatrix, Transpositions, as detailed below.
* The normalize and normalized methods will now leave their input
unchanged if its norm is 0 or too close to 0. Previously this
resulted in a vector containing NaNs or infinities.
* internal::significant_decimals_impl is deprecated and users of
custom scalar types are encouraged to overload
NumTraits<>::digits10().
In Eigen 3.3, the evaluation mechanism of expressions has been
completely rewritten. c.f. http://eigen.tuxfamily.org/index.php?title=3.3
Looks as though C++11 support was added and Eigen 2 support removed.
Detailed changelog:
http://eigen.tuxfamily.org/index.php?ti … igen_3.3.4

20160913 16:57:39 by Patrick Welche  Files touched by this commit (4)  
Log message:
Update eigen3 to 3.2.9
Eigen 3.2.9
Released on July 18, 2016
Changes since 3.2.8:
* Main fixes and improvements:
+ Improve numerical robustness of JacobiSVD (backported from 3.3)
+ Bug 1017: prevents underflows in makeHouseholder
+ Fix numerical accuracy issue in the extraction of complex
eigenvalue pairs in real generalized eigenvalue problems.
+ Fix support for vector.homogeneous().asDiagonal()
+ Bug 1238: fix SparseMatrix::sum() overload for uncompressed mode
+ Bug 1213: workaround gcc linking issue with anonymous enums.
+ Bug 1236: fix possible integer overflow in sparsesparse product
+ Improve detection of identical matrices when applying a
permutation (e.g., mat = perm * mat)
+ Fix usage of nesting type in blas_traits. In practice, this
fixes compilation of expressions such as A*(A*A)^T
+ CMake: fixes support of Ninja generator
+ Add a StorageIndex typedef to sparse matrices and expressions
to ease porting code to 3.3 (see
http://eigen.tuxfamily.org/index.php?ti … ex_typedef)
+ Bug 1200: make aligned_allocator c++11 compatible (backported from 3.3)
+ Bug 1182: improve generality of abs2 (backported from 3.3)
+ Bug 537: fix compilation of Quaternion with Apples's compiler
+ Bug 1176: allow products between compatible scalar types
+ Bug 1172: make valuePtr and innerIndexPtr properly return null
for empty sparse matrices.
+ Bug 1170: skip calls to memcpy/memmove for empty inputs.
* Others:
+ Bug 1242: fix comma initializer with empty matrices.
+ Improves support for MKL's PARDISO solver.
+ Fix a compilation issue with Pastix solver.
+ Add some missing explicit scalar conversions
+ Fix a compilation issue with matrix exponential (unsupported
MatrixFunctions module).
+ Bug 734: fix a storage order issue in unsupported Spline module
+ Bug 1222: fix a compilation issue in AutoDiffScalar
+ Bug 1221: shutdown some GCC6's warnings.
+ Bug 1175: fix index type conversion warnings in sparse to
dense conversion.
Eigen 3.2.8
Released on February 16, 2016
Changes since 3.2.7:
* Main fixes and improvements:
+ Make FullPivLU::solve use rank() instead of nonzeroPivots().
+ Add EIGEN_MAPBASE_PLUGIN
+ Bug 1166: fix issue in matrixvector products when the
destination is not a vector at compiletime.
+ Bug 1100: Improve cmake/pkgconfig support.
+ Bug 1113: fix name conflict with C99's "I".
+ Add missing delete operator overloads in
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
+ Fix (A*B).maxCoeff(i) and similar.
+ Workaround an ICE with VC2015 Update1 x64.
+ Bug 1156: fix several function declarations whose arguments
were passed by value instead of being passed by reference
+ Bug 1164: fix std::list and std::deque specializations such
that our aligned allocator is automatically activatived only
when the user did not specified an allocator (or specified the
default std::allocator).
* Others:
+ Fix BLAS backend (aka MKL) for empty matrix products.
+ Bug 1134: fix JacobiSVD preallocation.
+ Bug 1111: fix infinite recursion in
sparsecolumnmajor.row(i).nonZeros() (it now produces a
compilation error)
+ Bug 1106: workaround a compilation issue in Sparse module for
msvcicc combo
+ Bug 1153: remove the usage of __GXX_EXPERIMENTAL_CXX0X__ to
detect C++11 support
+ Bug 1143: workaround gcc bug in COLAMD
+ Improve support for matrix products with empty factors.
+ Fix and clarify documentation of Transform wrt
operator*(MatrixBase)
+ Add a matrixfree conjugate gradient example.
+ Fix cost computation in CwiseUnaryView (internal)
+ Remove custom unaligned loads for SSE.
+ Some warning fixes.
+ Several other documentation clarifications.

20160902 18:58:13 by Thomas Klausner  Files touched by this commit (1)  
Log message:
Bump PKGREVISION for pc file fix.

20160902 11:37:25 by Iain Hibbert  Files touched by this commit (2) 
Log message:
patch pkgconfig file
cflags was "Iinclude/eigen3" which was clearly wrong, so add prefix

20151115 13:09:59 by Patrick Welche  Files touched by this commit (1) 
Log message:
Remove reference to 3.1.4 from distinfo

20151115 13:06:33 by Patrick Welche  Files touched by this commit (3)  
Log message:
Update eigen3 to 3.2.7
Eigen 3.2.7
Released on November 5, 2015
Changes since 3.2.6:
* Main fixes and improvements:
+ Add support for dense.cwiseProduct(sparse).
+ Fix a regression regarding (dense*sparse).diagonal().
+ Make the IterativeLinearSolvers module compatible with
MPL2only mode by defaulting to COLAMDOrdering and
NaturalOrdering for ILUT and ILLT respectively.
+ [59]Bug 266: backport support for c++11 move semantic
+ operator/=(Scalar) now performs a true division (instead of
mat*(1/s))
+ Improve numerical accuracy in LLT and triangular solve by
using true scalar divisions (instead of mat * (1/s))
+ [60]Bug 1092: fix iterative solver constructors for
expressions as input
+ [61]Bug 1088: fix setIdenity for noncompressed sparsematrix
+ [62]Bug 1086: add support for recent SuiteSparse versions
* Others:
+ Add overloads for realscalar times SparseMatrix<complex>
operations. This avoids real to complex conversions, and also
fixes a compilation issue with MSVC.
+ Use explicit Scalar types for AngleAxis initialization
+ Fix several shortcomings in cost computation (avoid multiple
reevaluation in some very rare cases).
+ [63]Bug 1090: fix a shortcoming in redux logic for which
slicevectorization plus unrolling might happen.
+ Fix compilation issue with MSVC by backporting
DenseStorage::operator= from devel branch.
+ [64]Bug 1063: fix nesting of unsupported/AutoDiffScalar to
prevent dead references when computing secondorder
derivatives
+ [65]Bug 1100: remove explicit CMAKE_INSTALL_PREFIX prefix to
conform to cmake install's DESTINATION parameter.
+ unsupported/ArpackSupport is now properly installed by make
install.
+ [66]Bug 1080: warning fixes
Eigen 3.2.6
Released on October 1, 2015
Changes since 3.2.5:
* fix some compilation issues with MSVC 2013, including bugs [67]1000
and [68]1057
* SparseLU: fixes to support EIGEN_DEFAULT_TO_ROW_MAJOR ([69]bug
1053), and for empty ([70]bug 1026) and some structurally rank
deficient matrices ([71]bug 792)
* [72]Bug 1075: fix AlignedBox::sample() for Dynamic dimension
* fix regression in AMD ordering when a column has only one
offdiagonal nonzero (used in sparse Cholesky)
* fix Jacobi preconditioner with zero diagonal entries
* fix Quaternion identity initialization for nonimplicitly
convertible types
* [73]Bug 1059: fix predux_max<Packet4i> for NEON
* [74]Bug 1039: fix some issues when redefining
EIGEN_DEFAULT_DENSE_INDEX_TYPE
* [75]Bug 1062: fix SelfAdjointEigenSolver for RowMajor matrices
* MKL: fix support for the 11.2 version, and fix a naming conflict
([76]bug 1067)
+ [77]Bug 1033: explicit type conversion from 0 to RealScalar
Eigen 3.3alpha1
Released on September 4, 2015
See the [78]announcement.
Eigen 3.2.5
Released on June 16, 2015
Changes since 3.2.4:
* Changes with main impact:
+ Improve robustness of SimplicialLDLT to semidefinite problems
by correctly handling structural zeros in AMD reordering
+ Reenable supernodes in SparseLU (fix a performance regression
in SparseLU)
+ Use zero guess in ConjugateGradients::solve
+ Add PermutationMatrix::determinant method
+ Fix SparseLU::signDeterminant() method, and add a
SparseLU::determinant() method
+ Allows LowerUpper as a template argument of CG and MINRES: in
this case the full matrix will be considered
+ [79]Bug 872: remove usage of std::bind* functions (deprecated
in c++11)
* Numerical robustness improvements:
+ [80]Bug 1014: improve numerical robustness of the 3x3 direct
eigenvalue solver
+ [81]Bug 1013: fix 2x2 direct eigenvalue solver for identical
eigenvalues
+ [82]Bug 824: improve accuracy of Quaternion::angularDistance
+ [83]Bug 941: fix an accuracy issue in ColPivHouseholderQR by
continuing the decomposition on a small pivot
+ [84]Bug 933: improve numerical robustness in RealSchur
+ Fix default threshold value in SPQR
* Other changes:
+ Fix usage of EIGEN_NO_AUTOMATIC_RESIZING
+ Improved support for custom scalar types in SparseLU
+ Improve cygwin compatibility
+ [85]Bug 650: fix an issue with sparsedense product and
rowmajor matrices
+ [86]Bug 704: fix MKL support (HouseholderQR)
+ [87]Bug 705: fix handling of Lapack potrf return code (LLT)
+ [88]Bug 714: fix matrix product with OpenMP support
+ [89]Bug 949: add static assertions for incompatible scalar
types in many of the dense decompositions
+ [90]Bugs 957, [91]1000: workaround MSVC/ICC compilation issues
when using sparse blocks
+ [92]Bug 969: fix ambiguous calls to Ref
+ [93]Bugs 972, [94]986: add support for coefficientbased
product with 0 depth
+ [95]Bug 980: fix taking a row (resp. column) of a columnmajor
(resp. rowmajor) sparse matrix
+ [96]Bug 983: fix an alignement issue in Quaternion
+ [97]Bug 985: fix RealQZ when either matrix had zero rows or
columns
+ [98]Bug 987: fix alignement guess in diagonal product
+ [99]Bug 993: fix a pitfall with matrix.inverse()
+ [100]Bugs 996, [101]1016: fix scalar conversions
+ [102]Bug 1003: fix handling of pointers non aligned on scalar
boundary in slicevectorization
+ [103]Bug 1010: fix member initialization in IncompleteLUT
+ [104]Bug 1012: enable alloca on Mac OS or if alloca is defined
as macro
+ Doc and build system: [105]733, [106]914, [107]952, [108]961,
[109]999
Eigen 3.2.4
Released on January 21, 2015
Changes since 3.2.3:
* Fix compilation regression in Rotation2D
* [110]Bug 920: fix compilation issue with MSVC 2015.
* [111]Bug 921: fix utilization of bitwise operation on enums in
first_aligned.
* Fix compilation with NEON on some platforms.
Eigen 3.2.3
Released on December 16, 2014
Changes since 3.2.2:
* Core:
+ Enable Mx0 * 0xN matrix products.
+ [112]Bug 859: fix returned values for vectorized versions of
exp(NaN), log(NaN), sqrt(NaN) and sqrt(1).
+ [113]Bug 879: tri1 = mat * tri2 was compiling and running
incorrectly if tri2 was not numerically triangular. Workaround
the issue by evaluating mat*tri2 into a temporary.
+ [114]Bug 854: fix numerical issue in
SelfAdjointEigenSolver::computeDirect for 3x3 matrices.
+ [115]Bug 884: make sure there no call to malloc for zerosized
matrices or for a Ref<> without temporaries.
+ [116]Bug 890: fix aliasing detection when applying a
permutation.
+ [117]Bug 898: MSVC optimization by adding inline hint to
const_cast_ptr.
+ [118]Bug 853: remove enable_if<> in Ref<> ctor.
* Dense solvers:
+ [119]Bug 894: fix the sign returned by LDLT for multiple calls
to compute().
+ Fix JacobiSVD wrt underflow and overflow.
+ [120]Bug 791: fix infinite loop in JacobiSVD in the presence
of NaN.
* Sparse:
+ Fix outofbounds memory write when the product of two sparse
matrices is completely dense and performed using pruning.
+ UmfPack support: fix redundant evaluation/copies when calling
compute(), add support for generic expressions as input, and
fix extraction of the L and U factors ([121]Bug 911).
+ Improve SparseMatrix::block for const matrices (the generic
path was used).
+ Fix memory preallocation when permuting inner vectors of a
sparse matrix.
+ Fix SparseQR::rank for a completely empty matrix.
+ Fix SparseQR for rowmajor inputs.
+ Fix SparseLU::absDeterminant and add respective unit test.
+ BiCGSTAB: make sure that good initial guesses are not
destroyed by a bad preconditioner.
* Geometry:
+ Fix Hyperplane::Through(a,b,c) when points are aligned or
identical.
+ Fix linking issues in OpenGLSupport.
* OS, build system and doc:
+ Various compilation fixes including: [122]bug 821, [123]bug
822, [124]bug 857, [125]bug 871, [126]bug 873.
+ Fix many compilation warnings produced by recent compilers
including: [127]bug 909.
+ [128]Bug 861: enable posix_memalign with PGI.
+ Fix BiCGSTAB doc example.
Eigen 3.2.2
Released on August 4, 2014
Changes since 3.2.1:
* Core:
+ Relax Ref such that Ref<MatrixXf> accepts a RowVectorXf which
can be seen as a degenerate MatrixXf(1,N)
+ Fix performance regression for the vectorization of sub
columns/rows of matrices.
+ EIGEN_STACK_ALLOCATION_LIMIT: Raise its default value to
128KB, make use of it to assert on maximal fixed size object,
and allows it to be 0 to mean "no limit".
+ [129]Bug 839: Fix 1x1 triangular matrixvector product.
+ [130]Bug 755: CommaInitializer produced wrong assertions in
absence of ReturnValueOptimization.
* Dense solvers:
+ Add a rank() method with threshold control to JacobiSVD, and
make solve uses it to return the minimal norm solution for
rankdeficient problems.
+ Various numerical fixes in JacobiSVD, including:[131]bug 843,
and the move from Lapack to Matlab strategy for the default
threshold.
+ Various numerical fixes in LDLT, including the case of
semidefinite complex matrices.
+ Fix ColPivHouseholderQR::rank().
+ [132]Bug 222: Make temporary matrix columnmajor independently
of EIGEN_DEFAULT_TO_ROW_MAJOR in BlockHouseholder.
* Sparse:
+ [133]http://eigen.tuxfamily.org/bz/show_bug.cgi?id=838 Bug
838]: Fix dense * sparse and sparse * dense outer products and
detect outer products from either the lhs or rhs.
+ Make the ordering method of SimplicialL[D]LT configurable.
+ Fix regression in the restart mechanism of BiCGSTAB.
+ [134]Bug 836: extend SparseQR to support more columns than
rows.
+ [135]Bug 808: Use double instead of float for the increasing
size ratio in CompressedStorage::resize, fix implicit
conversions from int/longint to float/double, and fix
set_from_triplets temporary matrix type.
+ [136]Bug 647: Use smart_copy instead of bitwise memcpy in
CompressedStorage.
+ GMRES: Initialize essential Householder vector with correct
dimension.
* Geometry:
+ [137]Bug 807: Missing scalar type cast in umeyama()
+ [138]Bug 806: Missing scalar type cast in
Quaternion::setFromTwoVectors()
+ [139]Bug 759: Removed hardcoded doublemath from
Quaternion::angularDistance.
* OS, build system and doc:
+ Fix compilation with Windows CE.
+ Fix some ICEs with VC11.
+ Check IMKL version for compatibility with Eigen
+ [140]Bug 754: Only inserted (!defined(_WIN32_WCE)) analog to
alloc and free implementation.
+ [141]Bug 803: Avoid char* to int* conversion.
+ [142]Bug 819: Include path of details.h file.
+ [143]Bug 738: Use the "current" version of cmake project
directories to ease the inclusion of Eigen within other
projects.
+ [144]Bug 815: Fix doc of FullPivLU wrt permutation matrices.
+ [145]Bug 632: doc: Note that dm2 = sm1 + dm1 is not possible
+ Extend AsciiQuickReference (real, imag, conjugate, rot90)
Eigen 3.2.1
Released on February 26, 2014
Changes since 3.2.0:
* Eigen2 support is now deprecated and will be removed in version
3.3.
* Core:
+ Bug fix for Ref object containing a temporary matrix.
+ [146]Bug 654: Allow construction of row vector from 1D array.
+ [147]Bug 679: Support cwiseMin() and cwiseMax() on maps.
+ Support conservativeResize() on vectors.
+ Improve performance of vectorwise and replicate expressions.
+ [148]Bug 642: Add vectorization of sqrt for doubles, and make
sqrt really safe if EIGEN_FAST_MATH is disabled.
+ [149]Bug 616: Try harder to align columns when printing
matrices and arrays.
+ [150]Bug 579: Add optional runtime parameter to fixedsize
block methods.
+ Implement .all() and .any() for zerosized objects
+ [151]Bug 708: Add placement new and delete for arrays.
+ [152]Bug 503: Better C++11 support.
* Dense linear algebra:
+ [153]Bug 689: Speed up some matrixvector products by using
aligned loads if possible.
+ Make solve in FullPivHouseholderQR return leastsquare
solution if there is no exact solution.
+ [154]Bug 678: Fix fullPivHouseholderQR for rectangular
matrices.
+ Fix a 0/0 issue in JacobiSVD.
+ [155]Bug 736: Wrong result in LDLT::isPositiveDefinite() for
semidefinite matrices.
+ [156]Bug 740: Fix overflow issue in stableNorm().
+ Make pivoting HouseholderQR compatible with custom scalar
types.
* Geometry:
+ Fix compilation of Transform * UniformScaling
* Sparse matrices:
+ Fix elimination tree and SparseQR for fat rectangular
matrices.
+ [157]Bug 635: add isCompressed to MappedSparseMatrix for
compatibility.
+ [158]Bug 664: Support iterators without operator< in
setFromTriplets().
+ Fixes in SparseLU: infinite loop, aliasing issue when solving,
overflow in memory allocation, use exceptions only if enabled
([159]bug 672).
+ Fixes in SparseQR: reduce explicit zero, assigning result to
map, assert catching nonconforming sizes, memory leak.
+ [160]Bug 681: Uninitialized value in CholmodSupport which may
lead to incorrect results.
+ Fix some issues when using a nonstandard index type ([161]bug
665 and more)
+ Update constrained CG (unsupported module) to Eigen3.
* OS and build system:
+ MacOS put OpenGL header files somewhere else from where we
expected it.
+ Do not assume that alloca() is 16byte aligned on Windows.
+ Compilation fixes when using ICC with Visual Studio.
+ Fix Fortran compiler detection in CMake files.
* Fix some of our tests (bugs [162]744 and [163]748 and more).
* Fix a few compiler warnings (bug [164]317 and more).
* Documentation fixes (bugs [165]609, [166]638 and [167]739 and
more).

20151104 00:33:46 by Alistair G. Crooks  Files touched by this commit (262) 
Log message:
Add SHA512 digests for distfiles for math category
Problems found locating distfiles:
Package dfftpack: missing distfile dfftpack20001209.tar.gz
Package eispack: missing distfile eispack20001130.tar.gz
Package fftpack: missing distfile fftpack20001130.tar.gz
Package linpack: missing distfile linpack20010510.tar.gz
Package minpack: missing distfile minpack20001130.tar.gz
Package odepack: missing distfile odepack20001130.tar.gz
Package pynetworkx: missing distfile networkx1.10.tar.gz
Package pysympy: missing distfile sympy0.7.6.1.tar.gz
Package quadpack: missing distfile quadpack20001130.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.

20140127 19:41:15 by Thomas Klausner  Files touched by this commit (72) 
Log message:
Do not set FETCH_USING, should not be set in a package Makefile.
