./math/eigen3, C++ template library for linear algebra

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 3.3.9, Package name: eigen3-3.3.9, Maintainer: pkgsrc-users

Eigen 3 is a C++ template library for linear algebra: It is:
* Versatile. Eigen handles and in a completely integrated way:
o both fixed-size and dynamic-size matrices and vectors.
o both dense and sparse matrices and vectors.
o both plain matrices/vectors and abstract expressions.
o both column-major (the default) and row-major 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.
o Explicit vectorization is performed for the SSE (2 and later) and AltiVec
instruction sets, with graceful fallback to non-vectorized code.
o With fixed-size objects, dynamic memory allocation is avoided, and the
loops are unrolled when that makes sense.
o For large matrices, special attention is paid to cache-friendliness.
* 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.
* Compiler-friendy. Eigen has good compiler support, is standard C++98 and
maintains very reasonable compilation times.

Required to build:

Master sites:

Filesize: 1628.155 KB

Version history: (Expand)

CVS history: (Expand)

   2022-01-19 10:52:09 by Niclas Rosenvik | Files touched by this commit (1)
Log message:
disable package registry in eigen3 to not populate fake homedir
   2021-10-26 12:56:13 by Nia Alarie | Files touched by this commit (458)
Log message:
math: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes
   2021-10-07 16:28:36 by Nia Alarie | Files touched by this commit (458)
Log message:
math: Remove SHA1 hashes for distfiles
   2021-03-17 18:20:00 by Patrick Welche | Files touched by this commit (4)
Log message:
Update eigen3 to 3.3.9

Many fixes including a gcc10 compilation issue. Full list at
   2020-04-19 00:01:57 by Joerg Sonnenberger | Files touched by this commit (4)
Log message:
Add missing includes. Bump revision.
   2020-03-22 12:03:22 by Roland Illig | Files touched by this commit (1)
Log message:
math/eigen3: fix PKGCONFIG_OVERRIDE
   2019-11-02 17:16:23 by Roland Illig | Files touched by this commit (47)
Log message:
math: align variable assignments

pkglint -Wall -F --only aligned -r

Manual correction in R/Makefile.extension for the MASTER_SITES
continuation line.
   2019-03-09 15:14:39 by Wen Heping | Files touched by this commit (4) | Package updated
Log message:
Update to 3.3.7

Upstream changes:
Eigen 3.3.7

Released on December 11, 2018.

Changes since 3.3.6:

    Bug 1643: Fix compilation with GCC>=6 and compiler optimization turned off.

Eigen 3.3.6

Released on December 10, 2018.

Changes since 3.3.5:

    Bug 1617: Fix triangular solve crashing for empty matrix.
    Bug 785: Make dense Cholesky decomposition work for empty matrices.
    Bug 1634: Remove double copy in move-ctor of non movable Matrix/Array.
    Changeset 588e1eb34eff: Workaround weird MSVC bug.
    Bug 1637 Workaround performance regression in matrix products with gcc>=6 \ 
and clang>=6.0.
    Changeset bf0f100339c1: Fix some implicit 0 to Scalar conversions.
    Bug 1605: Workaround ABI issue with vector types (aka __m128) versus scalar \ 
types (aka float).
    Changeset d1421c479baa: Fix for gcc<4.6 regarding usage of #pragma GCC \ 
diagnostic push/pop.
    Changeset c20b83b9d736: Fix conjugate-gradient for right-hand-sides with a \ 
very small magnitude.
    Changeset 281a877a3bf7: Fix product of empty arrays (returned 0 instead of 1).
    Bug 1590: Fix collision with some system headers defining the macro FP32.
    Bug 1584: Fix possible undefined behavior in random generation.
    Changeset d632d18db8ca: Fix fallback to BLAS for rankUpdate.
    Fixes for NVCC 9.
    Fix matrix-market IO.
    Various fixes in the doc.
    Various minor warning fixes/workarounds.

Eigen 3.3.5

Released on July 23, 2018.

Changes since 3.3.4:

    General bug fixes:
        Fix GeneralizedEigenSolver when requesting for eigenvalues only \ 
        Bug 1560 fix product with a 1x1 diagonal matrix (90d7654f4a59)
        Bug 1543: fix linear indexing in generic block evaluation
        Fix compilation of product with inverse transpositions (e.g., mat * \ 
Transpositions().inverse()) (14a13748d761)
        Bug 1509: fix computeInverseWithCheck for complexes (8be258ef0b6d)
        Bug 1521: avoid signalling NaN in hypot and make it std::complex<> \ 
friendly (a9c06b854991).
        Bug 1517: fix triangular product with unit diagonal and nested scaling \ 
factor: (s*A).triangularView<UpperUnit>()*B (a546d43bdd4f)
        Fix compilation of stableNorm for some odd expressions as input \ 
        Bug 1485: fix linking issue of non template functions (ae28c2aaeeda)
        Fix overflow issues in BDCSVD (92060f82e1de)
        Bug 1468 : add missing std:: to memcpy (4565282592ae)
        Bug 1453: fix Map with non-default inner-stride but no outer-stride \ 
        Fix mixing types in sparse matrix products (7e5fcd0008bd)
        Bug 1544: Generate correct Q matrix in complex case (c0c410b508a1)
        Bug 1461: fix compilation of Map<const Quaternion>::x() (69652a06967d)

        Fix MKL backend for symmetric eigenvalues on row-major matrices \ 
        Bug 1527: fix support for MKL's VML (972424860545)
        Fix incorrect ldvt in LAPACKE call from JacobiSVD (88c4604601b9)
        Fix support for MKL's BLAS when using MKL_DIRECT_CALL (205731b87e19, \ 
b88c70c6ced7, 46e2367262e1)
        Use MKL's lapacke.h header when using MKL (19bc9df6b726)

        Bug 1516: add assertion for out-of-range diagonal index in \ 
MatrixBase::diagonal(i) (783d38b3c78c)
        Add static assertion for fixed sizes Ref<> (e1203d5ceb8e)
        Add static assertion on selfadjoint-view's UpLo parameter. \ 
(b84db94c677e, 0ffe8a819801)
        Bug 1479: fix failure detection in LDLT (67719139abc3)

    Compiler support:
        Bug 1555: compilation fix with XLC
        Workaround MSVC 2013 ambiguous calls (1c7b59b0b5f4)
        Adds missing EIGEN_STRONG_INLINE to help MSVC properly inlining small \ 
vector calculations (1ba3f10b91f2)
        Several minor warning fixes: 3c87fc0f1042, ad6bcf0e8efc, "used \ 
uninitialized" (20efc44c5500), Wint-in-bool-context (131da2cbc695, \ 
        Bug 1428: make NEON vectorization compilable by MSVC. (* 3d1b3dbe5927, \ 
        Fix compilation and SSE support with PGI compiler (faabf000855d 90d33b09040f)
        Bug 1555: compilation fix with XLC (23eb37691f14)
        Bug 1520: workaround some -Wfloat-equal warnings by calling \ 
std::equal_to (7d9a9456ed7c)
        Make the TensorStorage class compile with clang 3.9 (eff7001e1f0a)
        Misc: some old compiler fixes (493691b29be1)
        Fix MSVC warning C4290: C++ exception specification ignored except to \ 
indicate a function is not __declspec(nothrow) (524918622506)

    Architecture support:
        Several AVX512 fixes for log, sqrt, rsqrt, non AVX512ER CPUs, \ 
apply_rotation_in_the_plane b64275e912ba cab3d626a59e 7ce234652ab9, \ 
        AltiVec fixes: 9450038e380d
        NEON fixes: const-cast (e8a69835ccda), compilation of Jacobi rotations \ 
(c06cfd545b15,bug 1436).
        Changeset d0658cc9d4a2: Define pcast<> for SSE types even when AVX \ 
is enabled. (otherwise float are silently reinterpreted as int instead of being \ 
        Bug 1494: makes pmin/pmax behave on Altivec/VSX as on x86 regarding NaNs \ 

        Update manual pages regarding BDCSVD (bug 1538)
        Add aliasing in common pitfaffs (2a5a8408fdc5)
        Update aligned_allocator (21e03aef9f2b)
        Bug 1456: add perf recommendation for LLT and storage format \ 
(c8c154ebf130, 9aef1e23dbe0)
        Bug 1455: Cholesky module depends on Jacobi for rank-updates (2e6e26b851a8)
        Bug 1458: fix documentation of LLT and LDLT info() method (2a4cf4f473dd)
        Warn about constness in LLT::solveInPlace (518f97b69bdf)
        Fix lazyness of operator* with CUDA (c4dbb556bd36)
        Bug 336: improve doc for PlainObjectBase::Map (13dc446545fe)

    Other general improvements:
        Enable linear indexing in generic block evaluation (31537598bf83, \ 
5967bc3c2cdb, bug 1543).
        Fix packet and alignment propagation logic of Block<Xpr> \ 
expressions. In particular, (A+B).col(j) now preserve vectorisation. \ 
        Several fixes regarding custom scalar type support: hypot \ 
(f8d6c791791d), boost-multiprec (acb8ef9b2478), literal casts (6bbd97f17534, \ 
        LLT: avoid making a copy when decomposing in place (2f7e28920f4e), const \ 
the arg to solveInPlace() to allow passing .transpose(), .block(), etc. \ 
        Add possibility to overwrite EIGEN_STRONG_INLINE (7094bbdf3f4d)
        Bug 1528: use numeric_limits::min() instead of 1/highest() that might \ 
underflow (dd823c64ade7)
        Bug 1532: disable stl::*_negate in C++17 (they are deprecated) (88e9452099d5)
        Add C++11 max_digits10 for half (faf74dde8ed1)
        Make sparse QR result sizes consistent with dense QR (4638bc4d0f96)

    Unsupported/unit-tests/cmake/unvisible internals/etc.
        Bug 1484: restore deleted line for 128 bits long doubles, and improve \ 
dispatching logic. (dffc0f957f19)
        Bug 1462: remove all occurences of the deprecated __CUDACC_VER__ macro \ 
by introducing EIGEN_CUDACC_VER (a201b8438d36)
        Changeset 2722aa8eb93f: Fix oversharding bug in parallelFor.
        Changeset ea1db80eab46: commit 45e9c9996da790b55ed9c4b0dfeae49492ac5c46 \ 
(HEAD -> memory_fix)
        Changeset 350957be012c: Fix int versus Index
        Changeset 424038431015: fix linking issue
        Changeset 3f938790b7e0: Fix short vs long
        Changeset ba14974d054a: Fix cmake scripts with no fortran compiler
        Changeset 2ac088501976: add cmake-option to enable/disable creation of tests
        Changeset 56996c54158b: Use col method for column-major matrix
        Changeset 762373ca9793: Bug 1449: fix redux_3 unit test
        Changeset eda96fd2fa30: Fix uninitialized output argument.
        Changeset 75a12dff8ca4: Handle min/max/inf/etc issue in cuda_fp16.h \ 
directly in test/main.h
        Changeset 568614bf79b8: Add tests for sparseQR results (value and size) \ 
covering bugs 1522 and 1544
        Changeset 12c9ece47d14: SelfAdjointView<...,Mode> causes a static \ 
assert since commit c73a77e47db8
        Changeset 899fd2ef704f: weird compilation issue in mapped_matrix.cpp

Eigen 3.3.4

Released on June 15, 2017.

Changes since 3.3.3:

        Improve speed of Jacobi rotation when mixing complex and real types.
        Bug 1405: enable StrictlyLower/StrictlyUpper triangularView as the \ 
destination of matrix*matrix products.
        UmfPack support: enable changes in the control settings and add report \ 
        Bug 1423: fix LSCG's Jacobi preconditioner for row-major matrices.
        Bug 1424: fix compilation issue with abs and unsigned integers as scalar \ 
        Bug 1410: fix lvalue propagation of Array/Matrix-Wrapper with a const \ 
nested expression.
        Bug 1403: fix several implicit scalar type conversion making SVD \ 
decompositions compatible with ceres::Jet.
        Fix some real-to-scalar-to-real useless conversions in ColPivHouseholderQR.
        Fix dense * sparse-selfadjoint-view product.
        Bug 1417: make LinSpace compatible with std::complex.
        Bug 1400: fix stableNorm alignment issue with EIGEN_DONT_ALIGN_STATICALLY.
        Bug 1411: fix alignment issue in Quaternion.
        Fix compilation of operations between nested Arrays.
        Bug 1435: fix aliasing issue in expressions like: A = C - B*A.
        Fix compilation with gcc 4.3 and ARM NEON.
        Fix prefetches on ARM64 and ARM32.
        Fix out-of-bounds check in COLAMD.
        Few minor fixes regarding nvcc/CUDA support, including bug 1396.
        Improve cmake scripts for Pastix and BLAS detection.
        Bug 1401: fix compilation of "cond ? x : -x" with x an \ 
        Fix compilation of matrix log with Map as input.
        Add specializations of std::numeric_limits for Eigen::half and and \ 
        Fix compilation of streaming nested Array, i.e., cout << \