aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Transpose.h
Commit message (Collapse)AuthorAge
* Revert "Revert "Adds EIGEN_CONSTEXPR and EIGEN_NOEXCEPT to rows(), cols(), ↵Gravatar Steve Bronder2021-03-24
| | | | | | innerStride(), outerStride(), and size()"" This reverts commit 5f0b4a4010af4cbf6161a0d1a03a747addc44a5d.
* 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()
* Fix the embarrassingly incomplete fix to the embarrassing bug in blocked ↵Gravatar Rasmus Munk Larsen2020-04-29
| | | | transpose.
* Fix (embarrassing) bug in blocked transpose.Gravatar Rasmus Munk Larsen2020-04-29
|
* Add missing transpose in cleanup loop. Without it, we trip an assertion in ↵Gravatar Rasmus Munk Larsen2020-04-29
| | | | debug mode.
* Block transposeInPlace() when the matrix is real and square. This yields a ↵Gravatar Rasmus Munk Larsen2020-04-28
| | | | | | | | | | | | | | | | | | | | large speedup because we transpose in registers (or L1 if we spill), instead of one packet at a time, which in the worst case makes the code write to the same cache line PacketSize times instead of once. rmlarsen@rmlarsen4:.../eigen_bench/google3$ benchy --benchmarks=.*TransposeInPlace.*float.* --reference=srcfs experimental/users/rmlarsen/bench:matmul_bench 10 / 10 [====================================================================================================================================================================================================================] 100.00% 2m50s (Generated by http://go/benchy. Settings: --runs 5 --benchtime 1s --reference "srcfs" --benchmarks ".*TransposeInPlace.*float.*" experimental/users/rmlarsen/bench:matmul_bench) name old time/op new time/op delta BM_TransposeInPlace<float>/4 9.84ns ± 0% 6.51ns ± 0% -33.80% (p=0.008 n=5+5) BM_TransposeInPlace<float>/8 23.6ns ± 1% 17.6ns ± 0% -25.26% (p=0.016 n=5+4) BM_TransposeInPlace<float>/16 78.8ns ± 0% 60.3ns ± 0% -23.50% (p=0.029 n=4+4) BM_TransposeInPlace<float>/32 302ns ± 0% 229ns ± 0% -24.40% (p=0.008 n=5+5) BM_TransposeInPlace<float>/59 1.03µs ± 0% 0.84µs ± 1% -17.87% (p=0.016 n=5+4) BM_TransposeInPlace<float>/64 1.20µs ± 0% 0.89µs ± 1% -25.81% (p=0.008 n=5+5) BM_TransposeInPlace<float>/128 8.96µs ± 0% 3.82µs ± 2% -57.33% (p=0.008 n=5+5) BM_TransposeInPlace<float>/256 152µs ± 3% 17µs ± 2% -89.06% (p=0.008 n=5+5) BM_TransposeInPlace<float>/512 837µs ± 1% 208µs ± 0% -75.15% (p=0.008 n=5+5) BM_TransposeInPlace<float>/1k 4.28ms ± 2% 1.08ms ± 2% -74.72% (p=0.008 n=5+5)
* Bug #1788: Fix rule-of-three violations inside the stable modules.Gravatar Christoph Hertzberg2019-12-19
| | | | | This fixes deprecated-copy warnings when compiling with GCC>=9 Also protect some additional Base-constructors from getting called by user code code (#1587)
* bug #1707: Fix deprecation warnings, or disable warnings when testing ↵Gravatar Christoph Hertzberg2019-05-10
| | | | deprecated functions
* bug #1680: improve MSVC inlining by declaring many triavial constructors and ↵Gravatar Gael Guennebaud2019-02-15
| | | | accessors as STRONG_INLINE.
* bug #1646: fix false aliasing detection for A.row(0) = A.col(0);Gravatar Gael Guennebaud2019-01-17
| | | | This changeset completely disable the detection for vectors for which are current mechanism cannot detect any positive aliasing anyway.
* bug #1646: disable aliasing detection for empty and 1x1 expressionGravatar Gael Guennebaud2019-01-16
|
* Extend CUDA support to matrix inversion and selfadjointeigensolverGravatar Andrea Bocci2018-06-11
|
* Added missing EIGEN_DEVICE_FUNC qualifiersGravatar Benoit Steiner2017-02-28
|
* Fix regression in X = (X*X.transpose())/s with X rectangular by deferring ↵Gravatar Gael Guennebaud2016-10-26
| | | | resizing of the destination after the creation of the evaluator of the source expression.
* bug #178: remove additional const on nested expression, and remove several ↵Gravatar Gael Guennebaud2016-01-28
| | | | const_cast.
* Fix numerous doxygen shortcomings, and workaround some clang -Wdocumentation ↵Gravatar Gael Guennebaud2016-01-01
| | | | warnings
* Add LU::transpose().solve() and LU::adjoint().solve() API.Gravatar Gael Guennebaud2015-12-01
|
* 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.
* Get rid of class internal::nested<> (still have to updated Tensor module)Gravatar Gael Guennebaud2015-06-19
|
* Remove a few deprecated internal expressionsGravatar Gael Guennebaud2015-06-19
|
* Clean argument names of some functionsGravatar Gael Guennebaud2015-06-09
|
* Remove deprecated usage of expr::Index.Gravatar Gael Guennebaud2015-02-16
|
* Index refactoring: StorageIndex must be used for storage only (and locally ↵Gravatar Gael Guennebaud2015-02-13
| | | | when it make sense). In all other cases use the global Index type.
* Merge Index-refactoring branch with default, fix PastixSupport, remove some ↵Gravatar Gael Guennebaud2015-02-13
|\ | | | | | | useless typedefs
| * Enable vectorization of transposeInPlace for PacketSize x PacketSize matricesGravatar Gael Guennebaud2015-01-26
| |
* | 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.
* 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.
* Make constructors explicit if they could lead to unintended implicit conversionGravatar Christoph Hertzberg2014-09-23
|
* Remove deprecated code not used by evaluatorsGravatar Gael Guennebaud2014-09-18
|
* workaround one more shadowing issue with MSVCGravatar Gael Guennebaud2014-09-16
|
* Re-enable aliasing checks when using evaluatorsGravatar Gael Guennebaud2014-09-14
|
* Implement binaryop and transpose evaluators for sparse matricesGravatar Gael Guennebaud2014-06-23
|
* 1- Introduce sub-evaluator types for unary, binary, product, and map ↵Gravatar Gael Guennebaud2014-06-20
| | | | | | expressions to ease specializing them. 2- Remove a lot of code which should not be there with evaluators, in particular coeff/packet methods implemented in the expressions.
* merge default and evaluator branchesGravatar Gael Guennebaud2014-03-12
|\
* | Move evaluation related flags from traits to evaluator and fix evaluators of ↵Gravatar Gael Guennebaud2014-03-12
| | | | | | | | MapBase and Replicate
* | Move CoeffReadCost mechanism to evaluatorsGravatar Gael Guennebaud2014-03-10
| |
| * Specify what non-resizeable objects are in transposeInPlace and ↵Gravatar Christoph Hertzberg2014-02-24
|/ | | | adjointInPlace (cf bug #749)
* merge with main branchGravatar Gael Guennebaud2013-07-17
|\
| * Remove double const qualifierGravatar Gael Guennebaud2013-07-10
| |
| * doc: Mention vec=vec.head(n) in aliasing page.Gravatar Jitse Niesen2013-07-02
| |
| * fix compilation of ArrayBase::transposeInPlaceGravatar Gael Guennebaud2013-06-24
| |
| * Fix compilation issue with some compilers (when doing using Base::foo;, foo ↵Gravatar Gael Guennebaud2013-06-18
| | | | | | | | must be visible in the direct base class)
* | merge with default branchGravatar Gael Guennebaud2013-04-19
|\|
| * Guard against transposeInPlace on non-square non-resizable matrix.Gravatar Jitse Niesen2013-02-20
| | | | | | | | Inspired by question by Martin Drozdik at stackoverflow.com/q/14954983
* | Add support for NVCC5: most of the Core and part of LU are callable from ↵Gravatar Gael Guennebaud2013-02-07
|/ | | | | | CUDA code. Still a lot to do.
* Add missing const in some castsGravatar Gael Guennebaud2012-08-05
|
* Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.Gravatar Benoit Jacob2012-07-13
|
* fix most of the shadow warnings in Core/*.hGravatar Gael Guennebaud2012-06-22
|
* Get rid of include directives inside namespace blocks (bug #339).Gravatar Jitse Niesen2012-04-15
|