Commit Graph

2094 Commits

Author SHA1 Message Date
Benoit Steiner
e45a6bed45 Specialized the pload1 packet primitive for Packet8f and Packet4d in order to take advantage of the vbroadcastss and vbroadcastsd instructions whenever possible. 2014-03-26 15:58:13 -07:00
Benoit Steiner
cc73164aa8 Merged latest updates from the parent branch 2014-03-26 15:23:59 -07:00
Gael Guennebaud
f0a4c9d5ab Update gebp kernel to process a panle of 4 columns at once for the remaining ones. 2014-03-26 23:22:36 +01:00
Gael Guennebaud
8be011e776 Remove remaining bits of the dead working buffer 2014-03-26 23:14:44 +01:00
Benoit Steiner
a078f442a3 Vectorized the multiplication and division of complex numbers using AVX instructions. 2014-03-26 15:11:18 -07:00
Benoit Steiner
cf1a7bfbe1 Used AVX instructions to vectorize the complex version of the pfirst and ploaddup packet primitives.
Silenced a few compilation warnings.
2014-03-26 12:03:31 -07:00
Gael Guennebaud
bc401eb6fa Implement new 1 packet x 8 gebp kernel 2014-03-26 18:53:00 +01:00
Gael Guennebaud
b286a1e75c add pbroadcast2/4 generic intrinsics 2014-03-26 16:46:36 +01:00
Benoit Steiner
6bf3cc2732 Use AVX instructions to vectorize pset1<Packet2cd>, pset1<Packet4cf>, preverse<Packet2cd>, and preverse<Packet4cf> 2014-03-25 09:00:43 -07:00
Benoit Steiner
7ae9b0805d Used AVX instructions to vectorize the predux_min<Packet8f>, predux_min<Packet4d>, predux_max<Packet8f>, and predux_max<Packet4d> packet primitives. 2014-03-24 13:33:40 -07:00
Benoit Steiner
72707a8664 Made sure that EIGEN_ALIGN is defined when EIGEN_DONT_VECTORIZE is set to true to prevent build failures when vectorization is disabled. 2014-03-21 11:40:29 -07:00
Benoit Steiner
8a0845ebd7 Merged latest changes from the parent 2014-03-18 12:58:08 -07:00
Christoph Hertzberg
35a2c9cde7 clang does not accept this without template keyword 2014-03-14 16:48:29 +01:00
Gael Guennebaud
bb4b67cf39 Relax Ref such that Ref<MatrixXf> accepts a RowVectorXf which can be seen as a degenerate MatrixXf(1,N) 2014-03-13 18:04:19 +01:00
Christoph Hertzberg
2379ccffcb bug #755: CommaInitializer produced wrong assertions in absence of ReturnValueOptimization. 2014-03-12 13:48:09 +01:00
Benoit Steiner
8eac97138a Merged latest changes from the main trunk 2014-02-24 13:59:43 -08:00
Benoit Steiner
1dd176b0b0 Pulled latest changes from the Eigen main trunk 2014-02-24 13:56:01 -08:00
Benoit Steiner
131027ee0a Merged eigen/eigen into default 2014-02-24 13:54:07 -08:00
Benoit Steiner
db7d49efbb Added support for FMA instructions 2014-02-24 13:45:32 -08:00
Gael Guennebaud
9fdc6258cf Implement bug #317: use a template function call to suppress unused variable warnings. This also fix the issue of the previous changeset in a much nicer way. 2014-02-24 18:13:49 +01:00
Gael Guennebaud
21fecd5252 Workaround clang ABI change with unsed arguments (ugly fix) 2014-02-24 17:12:17 +01:00
Christoph Hertzberg
3e439889e0 Specify what non-resizeable objects are in transposeInPlace and adjointInPlace (cf bug #749) 2014-02-24 13:12:10 +01:00
Benoit Steiner
cbd7e98174 Merged the latest version of the code from eigen/eigen 2014-02-18 18:51:24 -08:00
Benoit Steiner
7ed9441ea4 Reverted the definition of the EIGEN_ALIGN to its former meaning (i.e. a boolean)
Created a new EIGEN_ALIGN_BYTES define to encode how the data should be aligned
Fixed a few remaining alignment issues exposed when the Eigen code is compiled with avx enabled.
Created a new EIGEN_ALIGN_DEFAULT define, which is set to the minimum alignment value required for the chosen instruction set. Use this value instead of EIGEN_ALIGN32 to preserve the existing alignment on SSE/Altivec/Neon.
2014-02-18 18:06:44 -08:00
Gael Guennebaud
0508af4287 Merged in martinhofernandes/eigen (pull request PR-40)
Better fix for bug #503
2014-02-14 15:31:39 +01:00
Gael Guennebaud
97965dde9b alloca is not necessarily alligned on windows 2014-02-14 00:04:38 +01:00
Gael Guennebaud
3291580630 Fix bug #740: overflow issue in stableNorm 2014-02-13 15:44:01 +01:00
Jitse Niesen
7ea6ef8969 Fix documentation of MatrixBase::applyOnTheLeft (bug #739)
Add examples; move methods from EigenBase.h to MatrixBase.h
2014-02-12 14:03:39 +00:00
Benoit Steiner
64a85800bd Added support for AVX to Eigen. 2014-01-29 11:43:05 -08:00
Gael Guennebaud
a7621809fe Remove useless register keyword, and optimize predux_min/max for SSE4 2014-01-25 16:54:13 +01:00
Gael Guennebaud
deab937d45 NVCC: fix closed-form eigenvalue decomposition, workaround gcc4.7/nvcc5.5 issue 2014-01-24 12:50:29 +01:00
Martinho Fernandes
4c08385b74 Merged eigen/eigen into default 2014-01-10 11:22:24 +01:00
Martinho Fernandes
4ccff2d028 Placement new must use void* to avoid user-specific overloads. 2014-01-10 11:20:40 +01:00
Martinho Fernandes
3a4616d6e3 Add C++11 allocator overloads to avoid implicit conversions. 2014-01-10 11:02:11 +01:00
Gael Guennebaud
92190a1caf Add an example showing how to use C++11 random distributions 2014-01-07 20:23:35 +01:00
Gael Guennebaud
ac409f51f1 Document the fact that Random and setRandom are not reentrant (so not thread-safe) 2014-01-07 20:17:59 +01:00
Benoit Steiner
c8c81c1e74 Improved the efficiency if the block-panel matrix multiplication code: the change reduces the pressure on the L1 cache by removing the calls to gebp_traits::unpackRhs(). Instead the packetization of the rhs blocks is done on the fly in gebp_traits::loadRhs(). This adds numerous calls to pset1<ResPacket> (since we're packetizing on the fly in the inner loop) but this is more than compensated by the fact that we're decreasing the memory transfers by a factor RhsPacketSize. 2014-01-02 16:18:32 -08:00
Gael Guennebaud
01fd880424 Revert previous change and introduce a new workaround regarding gcc generating a shufps instruction instead of the more efficient pshufd instruction.
The trick consists in introducing a new pload1 function to be used in low level product kernels for which bug #203 does not apply.
Indeed, it turned out that using inline assembly prevents gcc of doing a good job at instructtion reordering.
2014-03-20 16:03:46 +01:00
Gael Guennebaud
c39a3fa7a1 Makes gcc to generate a pshufd instruction for pset1 2014-03-20 10:14:26 +01:00
Gael Guennebaud
2a564695f0 Simpler and hopefully more future-proof fix for bug #503 (aligned_allocator with c++11) 2014-03-19 13:28:50 +01:00
Benoit Steiner
ce99b502ce Use vectorization when packing row-major rhs matrices. (bug #717) 2013-12-17 10:49:43 -08:00
Gael Guennebaud
ba2f79e680 Fix selfadjoint_matrix_vector_product for complex with packet size > 2 (e.g., AVX) 2014-03-07 23:18:20 +01:00
Christoph Hertzberg
d5cc083782 Fixed bug #754. Only inserted (!defined(_WIN32_WCE)) analog to alloc and free implementation (not tested, but should be correct). 2014-03-05 14:50:00 +01:00
Gael Guennebaud
7313f32efa Help MSVC to inline some trivial functions 2014-03-04 17:24:00 +01:00
Christoph Hertzberg
04e1e38eed bug #289: Removed useless static keywords 2014-03-04 15:10:29 +01:00
Gael Guennebaud
49034d1570 Fix bug #708: add placement new/delete for array 2013-11-27 09:46:59 +01:00
Gael Guennebaud
46dd1bb1be Workaround fixing aliasing issue in x = SparseLU::solve(x) 2013-11-15 11:19:19 +01:00
Christoph Hertzberg
e59b38abef Implement boolean reductions for zero-sized objects 2013-11-13 16:47:02 +01:00
Leszek Swirski
b93520b1a5 Install functor folder with cmake 2013-11-08 14:07:11 +00:00
Gael Guennebaud
cb8da751a0 fix broken commit 2013-11-07 22:44:37 +01:00