aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/PlainObjectBase.h
Commit message (Collapse)AuthorAge
* Use derived object type in conservative_resize_like_implGravatar Niall Murphy2021-05-20
| | | | | | | | | When calling conservativeResize() on a matrix with DontAlign flag, the temporary variable used to perform the resize should have the same Options as the original matrix to ensure that the correct override of swap is called (i.e. PlainObjectBase::swap(DenseBase<OtherDerived> & other). Calling the base class swap (i.e in DenseBase) results in assertions errors or memory corruption.
* Use Index type in loop over coefficients.Gravatar Antonio Sanchez2021-03-29
| | | | | Previously was `int`. Brought up by Kyle Snow (Polaris Geospatial Services) on the mailing list.
* Revert "Revert "Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), ↵Gravatar Steve Bronder2021-03-24
| | | | | | innerStride(), outerStride(), and size()"" This reverts commit 5f0b4a4010af4cbf6161a0d1a03a747addc44a5d.
* Fix NVCC+ICC issues.Gravatar Antonio Sanchez2021-03-15
| | | | | | | | | | | | | | | | | | | | | | | | NVCC does not understand `__forceinline`, so we need to use `inline` when compiling for GPU. ICC specializes `std::complex` operators for `float` and `double` by default, which cannot be used on device and conflict with Eigen's workaround in CUDA/Complex.h. This can be prevented by defining `_OVERRIDE_COMPLEX_SPECIALIZATION_` before including `<complex>`. Added this define to the tests and to `Eigen/Core`, but this will not work if the user includes `<complex>` before `<Eigen/Core>`. ICC also seems to generate a duplicate `Map` symbol in `PlainObjectBase`: ``` error: "Map" has already been declared in the current scope static ConstMapType Map(const Scalar *data) ``` I tracked this down to `friend class Eigen::Map`. Putting the `friend` statements at the bottom of the class seems to resolve this issue. Fixes #2180
* Re-implement move assignments.Gravatar Antonio Sanchez2021-03-10
| | | | | | | | | | | | | | | The original swap approach leads to potential undefined behavior (reading uninitialized memory) and results in unnecessary copying of data for static storage. Here we pass down the move assignment to the underlying storage. Static storage does a one-way copy, dynamic storage does a swap. Modified the tests to no longer read from the moved-from matrix/tensor, since that can lead to UB. Added a test to ensure we do not access uninitialized memory in a move. Fixes: #2119
* Revert "Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), ↵Gravatar David Tellenbach2021-03-05
| | | | | | | innerStride(), outerStride(), and size()" This reverts commit 6cbb3038ac48cb5fe17eba4dfbf26e3e798041f1 because it breaks clang-10 builds on x86 and aarch64 when C++11 is enabled.
* Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), innerStride(), ↵Gravatar Steve Bronder2021-03-04
| | | | outerStride(), and size()
* Cast anonymous enums to int when used in expressions.Gravatar Rasmus Munk Larsen2021-02-24
|
* Add the following functionsGravatar David Tellenbach2021-01-28
| | | | | | | DenseBase::setConstant(NoChange_t, Index, const Scalar&) DenseBase::setConstant(Index, NoChange_t, const Scalar&) to close #663.
* Add the following functions:Gravatar David Tellenbach2021-01-28
| | | | | | | | | | | DenseBase::setZero(NoChange_t, Index) DenseBase::setZero(Index, NoChange_t) DenseBase::setOnes(NoChange_t, Index) DenseBase::setOnes(Index, NoChange_t) DenseBase::setRandom(NoChange_t, Index) DenseBase::setRandom(Index, NoChange_t) This closes #663.
* Move variadic constructors outside `#ifndef EIGEN_PARSED_BY_DOXYGEN` block, ↵Gravatar Christoph Hertzberg2019-07-12
| | | | to make it actually appear in the generated documentation.
* bug #1692: enable enum as sizes of Matrix and ArrayGravatar Gael Guennebaud2019-03-17
|
* PR 593: Add variadtic ctor for DiagonalMatrix with unit testsGravatar David Tellenbach2019-03-14
|
* bug #1680: improve MSVC inlining by declaring many triavial constructors and ↵Gravatar Gael Guennebaud2019-02-15
| | | | accessors as STRONG_INLINE.
* cleanupGravatar Gael Guennebaud2019-01-24
|
* PR 574: use variadic template instead of initializer_list to implement ↵Gravatar David Tellenbach2019-01-23
| | | | fixed-size vector ctor from coefficients.
* Cleanup SFINAE in Array/Matrix(initializer_list) ctors and minor doc editing.Gravatar Gael Guennebaud2019-01-22
|
* PR 572: Add initializer list constructors to Matrix and Array (include unit ↵Gravatar David Tellenbach2019-01-21
| | | | | | | | tests and doc) - {1,2,3,4,5,...} for fixed-size vectors only - {{1,2,3},{4,5,6}} for the general cases - {{1,2,3,4,5,....}} is allowed for both row and column-vector
* [PATCH 1/2] Misc. typosGravatar luz.paz"2018-09-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | From 68d431b4c14ad60a778ee93c1f59ecc4b931950e Mon Sep 17 00:00:00 2001 Found via `codespell -q 3 -I ../eigen-word-whitelist.txt` where the whitelists consists of: ``` als ans cas dum lastr lowd nd overfl pres preverse substraction te uint whch ``` --- CMakeLists.txt | 26 +++++++++---------- Eigen/src/Core/GenericPacketMath.h | 2 +- Eigen/src/SparseLU/SparseLU.h | 2 +- bench/bench_norm.cpp | 2 +- doc/HiPerformance.dox | 2 +- doc/QuickStartGuide.dox | 2 +- .../Eigen/CXX11/src/Tensor/TensorChipping.h | 6 ++--- .../Eigen/CXX11/src/Tensor/TensorDeviceGpu.h | 2 +- .../src/Tensor/TensorForwardDeclarations.h | 4 +-- .../src/Tensor/TensorGpuHipCudaDefines.h | 2 +- .../Eigen/CXX11/src/Tensor/TensorReduction.h | 2 +- .../CXX11/src/Tensor/TensorReductionGpu.h | 2 +- .../test/cxx11_tensor_concatenation.cpp | 2 +- unsupported/test/cxx11_tensor_executor.cpp | 2 +- 14 files changed, 29 insertions(+), 29 deletions(-)
* Fix IsRelocatable without C++11Gravatar Gael Guennebaud2018-07-19
|
* bug #1432: fix conservativeResize for non-relocatable scalar types. For ↵Gravatar Gael Guennebaud2018-07-18
| | | | those we need to by-pass realloc routines and fall-back to allocate as new - copy - delete. The remaining problem is that we don't have any mechanism to accurately determine whether a type is relocatable or not, so currently let's be super conservative using either RequireInitialization or std::is_trivially_copyable
* MIsc. source and comment typosGravatar luz.paz2018-03-11
| | | | Found using `codespell` and `grep` from downstream FreeCAD
* bug #336: improve doc for PlainObjectBase::MapGravatar Gael Guennebaud2017-08-22
|
* bug #1393: enable Matrix/Array explicit ctor from types with conversion ↵Gravatar Gael Guennebaud2017-02-17
| | | | operators (was ok with 3.2)
* Add std:: namespace prefix to all (hopefully) instances if size_t/ptrdfiff_tGravatar Gael Guennebaud2017-01-23
|
* Fix and workaround several doxygen issues/warningsGravatar Gael Guennebaud2017-01-04
|
* bug #1336: workaround doxygen failing to include numerous members of ↵Gravatar Gael Guennebaud2017-01-04
| | | | MatriBase in Matrix
* fix two warnings(unused typedef, unused variable) and a typoGravatar Angelos Mantzaflaris2016-12-01
| | | | | (grafted from a9aa3bcf50d55b63c8adb493a06c903ec34251c6 )
* Fixes for min and abs after Benoit's comments, switched to numext.Gravatar Robert Lukierski2016-10-13
|
* Fixes min() warnings.Gravatar Robert Lukierski2016-10-12
|
* Adding EIGEN_DEVICE_FUNC in the Geometry module.Gravatar Robert Lukierski2016-10-12
| | | | | Additional CUDA necessary fixes in the Core (mostly usage of EIGEN_USING_STD_MATH).
* Doc: split customizing-eigen page into sub-pages and re-structure a bit the ↵Gravatar Gael Guennebaud2016-08-30
| | | | different topics
* Relax mixing-type constraints for binary coefficient-wise operators:Gravatar Gael Guennebaud2016-06-06
| | | | | | | | | | - Replace internal::scalar_product_traits<A,B> by Eigen::ScalarBinaryOpTraits<A,B,OP> - Remove the "functor_is_product_like" helper (was pretty ugly) - Currently, OP is not used, but it is available to the user for fine grained tuning - Currently, only the following operators have been generalized: *,/,+,-,=,*=,/=,+=,-= - TODO: generalize all other binray operators (comparisons,pow,etc.) - TODO: handle "scalar op array" operators (currently only * is handled) - TODO: move the handling of the "void" scalar type to ScalarBinaryOpTraits
* bug #725: make move ctor/assignment noexcept.Gravatar Gael Guennebaud2016-06-03
|
* Doc: disable inlining of inherited members, workaround Doxygen's limited C++ ↵Gravatar Gael Guennebaud2016-06-01
| | | | parsing abilities, and improve doc of MapBase.
* Silenced several double-promotion warningsGravatar Christoph Hertzberg2016-05-22
|
* Make EIGEN_HAS_RVALUE_REFERENCES user configurableGravatar Gael Guennebaud2016-05-20
|
* Rename EIGEN_HAVE_RVALUE_REFERENCES to EIGEN_HAS_RVALUE_REFERENCESGravatar Gael Guennebaud2016-05-20
|
* Fix numerous doxygen issues in auto-link generationGravatar Gael Guennebaud2015-12-30
|
* bug #1074: forbid the creation of PlainObjectBase object by making its ctor ↵Gravatar Gael Guennebaud2015-12-09
| | | | protected
* Don't call internal::check_rows_cols_for_overflow twice in ↵Gravatar Benoit Steiner2015-10-29
| | | | PlainObjectBase::resize since this is extremely expensive for small arrays
* surpress some warningsGravatar Christoph Hertzberg2015-08-17
|
* First part of a big refactoring of alignment control to enable the handling ↵Gravatar Gael Guennebaud2015-08-06
| | | | | | | | | of arbitrarily aligned buffers. It includes: - AlignedBit flag is deprecated. Alignment is now specified by the evaluator through the 'Alignment' enum, e.g., evaluator<Xpr>::Alignment. Its value is in Bytes. - Add several enums to specify alignment: Aligned8, Aligned16, Aligned32, Aligned64, Aligned128. AlignedMax corresponds to EIGEN_MAX_ALIGN_BYTES. Such enums are used to define the above Alignment value, and as the 'Options' template parameter of Map<> and Ref<>. - The Aligned enum is now deprecated. It is now an alias for Aligned16. - Currently, traits<Matrix<>>, traits<Array<>>, traits<Ref<>>, traits<Map<>>, and traits<Block<>> also expose the Alignment enum.
* Clean argument names of some functionsGravatar Gael Guennebaud2015-06-09
|
* minor documentation fixesGravatar Gael Guennebaud2015-06-05
|
* bug #360: add value_type typedef to DenseBase/SparseMatrixBaseGravatar Gael Guennebaud2015-04-24
|
* Constructing a Matrix/Array with implicit transpose could lead to memory leaks.Gravatar Christoph Hertzberg2015-04-16
| | | | Also reduced code duplication for Matrix/Array constructors
* bug #877, bug #572: Introduce a global Index typedef. Rename Sparse*::Index ↵Gravatar Christoph Hertzberg2014-12-04
| | | | to StorageIndex, make Dense*::StorageIndex an alias to DenseIndex. Overall this commit gets rid of all Index conversion warnings.
* bug #903: clean swap API regarding extra enable_if parameters, and add ↵Gravatar Gael Guennebaud2014-11-06
| | | | failtests for swap
* Make cuda_basic test compile again by adding lots of EIGEN_DEVICE_FUNC.Gravatar Christoph Hertzberg2014-10-13
| | | | Although the test passes now, there might still be some missing.