Gael Guennebaud
e3ba5329ff
Implement evaluators for sparse Block.
2014-06-25 09:58:26 +02:00
Gael Guennebaud
17f119689e
implement evaluator for SparseVector
2014-06-25 09:58:03 +02:00
Christoph Hertzberg
755be9016a
Workaround clang error introduced by 3117036b80
...
:
"template argument for non-type template parameter is treated as function type 'bool (bool)'"
2014-06-23 22:33:36 +02:00
Christoph Hertzberg
3117036b80
Fix bug #826 : Allow initialization of 1x1 Arrays/Matrices by passing a value.
2014-06-23 11:15:42 +02:00
Christoph Hertzberg
1c3843bf86
Fix bug #729 : Use alloca if it is defined
2014-06-23 11:04:12 +02:00
Gael Guennebaud
3849cc65ee
Implement binaryop and transpose evaluators for sparse matrices
2014-06-23 10:40:03 +02:00
Gael Guennebaud
7fa87a8b12
Backport changes from old to new expression engines
2014-06-20 16:17:57 +02:00
Gael Guennebaud
b29b81a1f4
merge with default branch
2014-06-20 15:55:44 +02:00
Gael Guennebaud
47585c8ab2
merge
2014-06-20 15:49:07 +02:00
Gael Guennebaud
c415b627a7
Started to move the SparseCore module to evaluators: implemented assignment and cwise-unary evaluator
2014-06-20 15:42:13 +02:00
Gael Guennebaud
78bb808337
1- Introduce sub-evaluator types for unary, binary, product, and map 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.
2014-06-20 15:39:38 +02:00
Gael Guennebaud
963d338922
Fix bug #827 : improve accuracy of quaternion to angle-axis conversion
2014-06-20 15:09:42 +02:00
Gael Guennebaud
98ef44fe55
Add assertion and warning on the requirements of SparseQR and COLAMDOrdering
2014-06-20 14:43:47 +02:00
Jitse Niesen
55453c51e8
Add documentation and very simple test for array atan().
2014-06-19 15:07:42 +01:00
Roger Martin
eb49100de9
Add component-wise atan() function (see bug #80 ).
2014-06-19 14:55:14 +01:00
Mark Borgerding
afb1a8c124
fixed warning: -Wunused-local-typedefs
2014-06-17 18:25:56 -04:00
Gael Guennebaud
c06ec0f464
Fix Jacobi preconditioner with zero diagonal entries
2014-06-17 23:47:30 +02:00
Gael Guennebaud
ed37c44765
Enable LinearAccessBit in Block expression for inner-panels
2014-06-06 11:02:20 +02:00
Gael Guennebaud
0f1e321dd4
Fic bug #819 : include path of details.h
2014-06-04 11:58:01 +02:00
Jitse Niesen
eb56461ac2
Fix doc'n of FullPivLU re permutation matrices (bug #815 ).
2014-05-31 23:05:18 +01:00
Christoph Hertzberg
9aa3dc4e21
Merged in benoitsteiner/eigen-fixes (pull request PR-62)
...
Made it possible to call the assignment operator on an Eigen::Block from a CUDA kernel.
2014-05-08 17:06:28 +02:00
Benoit Steiner
881aab14b4
Made it possible to call the assignment operator on an Eigen::Block from a CUDA kernel.
2014-05-07 13:34:46 -07:00
Christoph Hertzberg
9217de8bf2
Missed to remove IACA_END in previous commit
2014-05-05 15:10:18 +02:00
Christoph Hertzberg
84cb1d72b8
Removed IACA-defines
...
This caused redefinition warnings if IACA headers were included from elsewhere. For a clean solution we should define our own EIGEN_IACA_* macros
2014-05-05 15:06:37 +02:00
Christoph Hertzberg
b4beba72a2
Fix bug #807 : Missing scalar type cast in umeyama()
2014-05-05 14:23:52 +02:00
Christoph Hertzberg
b5e3d76aa5
Fixed bug #806 : Missing scalar type cast in Quaternion::setFromTwoVectors()
2014-05-05 14:22:27 +02:00
Benjamin Chretien
0b7f95a03f
Fix typo in SparseMatrix assert.
2014-05-03 12:41:37 +02:00
Gael Guennebaud
d67aa1549b
Add missing add_subdirectory directive
2014-05-03 10:46:11 +02:00
Gael Guennebaud
07986189b7
Fix bug #803 : avoid char* to int* conversion
2014-05-01 23:03:54 +02:00
Gael Guennebaud
e7ef26fa44
TRMM: Make sure we have enough memory in rhs block to enforce alignment.
2014-04-25 23:36:22 +02:00
Gael Guennebaud
450d0c3de0
Make sure that calls to broadcast4 are 16 bytes aligned
2014-04-25 22:25:48 +02:00
Gael Guennebaud
f9d2f3903e
Product kernel: skip loop on columns if there is no remaining rows
2014-04-25 16:54:30 +02:00
Gael Guennebaud
6f64b0b487
Fix sizeof unit test
2014-04-25 14:05:54 +02:00
Gael Guennebaud
c20e3641de
Fix for mixed products
2014-04-25 13:22:34 +02:00
Gael Guennebaud
2dbfd83424
Implement pbroadcast4 on altivec
2014-04-25 02:46:57 -07:00
Gael Guennebaud
c9788d55b9
Disable 3pX4 kernel on Altivec: despite this platform has 32 registers, this version seems significantly slower.
2014-04-25 11:48:22 +02:00
Gael Guennebaud
4def7b1fa5
Fix ptranspose overload prototypes for NEON
2014-04-25 11:15:13 +02:00
Gael Guennebaud
c79bd4b64b
Minor optimizations in product kernel:
...
- use pbroadcast4 (helpful when AVX is not available)
- process all remaining rows at once (significant speedup for small matrices)
2014-04-25 11:06:03 +02:00
Gael Guennebaud
3d8d0f6269
Enable vectorization of pack_rhs with a column-major RHS.
...
Rename and generalize Kernel<*> to PacketBlock<*,N>.
2014-04-25 10:56:18 +02:00
Gael Guennebaud
b0e19db1cf
Enable fused madd for Altivec
2014-04-24 23:17:18 +02:00
Gael Guennebaud
8d85ce88e1
Implement ptranspose on altivec and fix pgather/pscatter
2014-04-24 05:47:53 -07:00
Benoit Steiner
4eb92e5647
Fixed the NEON implementation of predux_max<Packet4i>.
2014-04-23 18:23:07 -07:00
Benoit Steiner
ccb4dec719
Created a NEON version of the ptranspose packet primitives
2014-04-23 18:22:10 -07:00
Gael Guennebaud
82b09fcb91
Add Altivec implementation of pgather/pscatter (not tested)
2014-04-23 13:09:26 +02:00
Gael Guennebaud
ecbd67a15a
Fix EIGEN_MAKE_UNALIGNED_ARRAY_ASSERT macro
2014-04-22 17:03:57 +02:00
Gael Guennebaud
934ce93886
merge with default branch
2014-04-22 17:00:38 +02:00
Gael Guennebaud
5c5231ab71
Workaround gcc's default ABI not being able to distinghish between vector types of different sizes.
2014-04-22 16:03:19 +02:00
Gael Guennebaud
2606abed53
Fix 128bit packet size assumptions in unit tests.
2014-04-18 21:14:40 +02:00
Gael Guennebaud
a7d20038df
Fix alignment assertion.
2014-04-18 17:06:31 +02:00
Gael Guennebaud
3454b4e5f1
Fix calls to lazy products (lazy product does not like matrices with 0 length)
2014-04-18 17:06:03 +02:00
Gael Guennebaud
94684721bd
Smarter block size computation
2014-04-18 15:35:34 +02:00
Gael Guennebaud
1388f4f9fd
Fix typo (was working with clang\!)
2014-04-18 11:43:13 +02:00
Gael Guennebaud
6d665d446b
Fixes for fixed sizes and non vectorizable types
2014-04-17 23:26:34 +02:00
Gael Guennebaud
2c3c95990d
merge
2014-04-17 22:50:49 +02:00
Benoit Steiner
6d6df90c9a
Implemented the pgather/pscatter packet primitives for the arm/NEON architecture
2014-04-17 12:28:01 -07:00
Gael Guennebaud
9746396d1b
Optimize AVX pset1 for complexes and ploaddup
2014-04-17 20:51:04 +02:00
Gael Guennebaud
11fbdcbc38
Fix and optimize mixed products
2014-04-17 16:04:30 +02:00
Gael Guennebaud
0fa8290366
Optimize ploaddup for AVX
2014-04-17 16:02:27 +02:00
Gael Guennebaud
d936ddc3d1
Fallback to lazy products for very small ones.
2014-04-16 23:15:42 +02:00
Gael Guennebaud
de8336a9bc
Enable alloca on MAC OSX
2014-04-16 23:14:58 +02:00
Jitse Niesen
ffc995c9e4
Implement evaluator<ReturnByValue>.
...
All supported tests pass apart from Sparse and Geometry,
except test in adjoint_4 that a = a.transpose() raises an assert.
2014-04-16 18:16:36 +01:00
Gael Guennebaud
d5a795f673
New gebp kernel handling up to 3 packets x 4 register-level blocks. Huge speeup on Haswell.
...
This changeset also introduce new vector functions: ploadquad and predux4.
2014-04-16 17:05:11 +02:00
Jitse Niesen
b30706bd5c
Fix typo in Inverse.h
2014-04-15 22:51:46 +01:00
Mark Borgerding
e0dbb68c2f
Check IMKL version for compatibility with Eigen
2014-04-15 13:57:03 -04:00
Jitse Niesen
59f5f155c2
Port products with permutation matrices to evaluators.
2014-04-15 15:21:38 +01:00
Gael Guennebaud
3c66bb136b
bug #793 : detect NaN and INF in EigenSolver instead of aborting with an assert.
2014-04-14 22:00:27 +02:00
Gael Guennebaud
7098e6d976
Add isfinite overload for complexes.
2014-04-14 21:57:49 +02:00
Benoit Steiner
feaf7c7e6d
Optimized SSE unaligned loads and stores when compiling a 64bit target with a recent version of gcc (ie gcc 4.8).
2014-04-14 10:44:17 -07:00
Gael Guennebaud
148acf8e4f
bug #790 : fix overflow in real_2x2_jacobi_svd
2014-04-14 13:52:16 +02:00
Gael Guennebaud
0587db8bf5
bug #793 : fix overflow in EigenSolver and add respective regression unit test
2014-04-14 11:43:08 +02:00
Benoit Steiner
1b333c89c9
Updated my previous fix to avoid introducing a compilation warning on ARM platforms.
2014-04-10 17:43:13 -07:00
Benoit Steiner
a1fcf599fa
Silenced a compilation warning produced by nvcc.
2014-04-10 11:19:37 -07:00
Jitse Niesen
a91a7a1964
doc: Add references to Cholesky methods in SelfAdjointView.
2014-04-07 14:14:48 +01:00
Benoit Steiner
b446ff037e
Deleted some dead code.
2014-04-04 14:12:24 -07:00
Christoph Hertzberg
096af59799
Fix bug #784 : Assert if assigning a product to a triangularView does not match the size.
2014-04-04 17:48:37 +02:00
Benoit Steiner
8044b00a7f
bug #782 : Workaround for gcc <= 4.4 compilation error on the NEON PacketMath code.
2014-04-03 23:41:47 +02:00
Gael Guennebaud
8d0441052e
Finally, prefetching seems to help getting more stable performance
2014-03-31 10:42:19 +02:00
Gael Guennebaud
1c0728043a
Workaround alignment warnings
2014-03-30 22:43:47 +02:00
Gael Guennebaud
e497a27ddc
Optimize gebp kernel:
...
1 - increase peeling level along the depth dimention (+5% for large matrices, i.e., >1000)
2 - improve pipelining when dealing with latest rows of the lhs
2014-03-30 21:57:05 +02:00
Benoit Steiner
ad59ade116
Vectorized the loop peeling of the inner loop of the block-panel matrix multiplication code. This speeds up the multiplication of matrices which size is not a multiple of the packet size.
2014-03-28 12:11:23 -07:00
Gael Guennebaud
10aa14592a
Add a mechanism to recursively access to half-size packet types
2014-03-28 10:18:04 +01:00
Gael Guennebaud
8d2bb2c20d
merge with default branch
2014-03-28 09:24:18 +01:00
Gael Guennebaud
c94fde118a
Enable vectorization of gemv for PacketSize>4 through unaligned loads (still better than no vectorization)
2014-03-28 09:11:06 +01:00
Benoit Steiner
51e85c936d
Merged latest changes from parent.
2014-03-27 18:32:15 -07:00
Benoit Steiner
8a94cb3edd
Implemented the SSE version of the gather and scatter packet primitives.
2014-03-27 18:29:01 -07:00
Benoit Steiner
7f3162f707
Implemented the AVX version of the gather and scatter packet primitives.
2014-03-27 17:42:25 -07:00
Benoit Steiner
ee86679096
Introduced pscatter/pgather packet primitives. They will be used to optimize the loop peeling code of the block-panel matrix multiplication kernel.
2014-03-27 16:03:03 -07:00
Gael Guennebaud
58fe2fc2b2
enforce the use of vfmadd231ps for pmadd (gcc and clang stupidely generates the other fmadd variants plus some register moves...)
2014-03-27 23:38:50 +01:00
Benoit Steiner
729363114f
Fixed compilation error when FMA instructions are enabled.
2014-03-27 11:20:41 -07:00
Benoit Steiner
1697d7a179
Silenced "unused variable" warnings when compiling with FMA.
2014-03-27 11:00:47 -07:00
Benoit Steiner
3e1fe8e416
Vectorized the packing of a col-major matrix used as the right hand side argument in a matrix-matrix product when AVX instructions are used. No vectorization takes place when SSE instructions are used, however this doesn't seem to impact performance.
2014-03-27 10:38:41 -07:00
Benoit Steiner
b776458ccb
Vectorized the packing of a row-major matrix used as the left hand side argument in a matrix-matrix product.
2014-03-27 10:02:24 -07:00
Benoit Steiner
c4902a3d01
Implemented the AVX version of the ptranspose packet primitive.
2014-03-27 09:34:51 -07:00
Gael Guennebaud
052aedd394
Implement pcplflip, palign, predux and the likes from AVC/complexes
2014-03-27 14:47:00 +01:00
Gael Guennebaud
fb03b56647
Fix warning
2014-03-27 11:38:35 +01:00
Mark Borgerding
9ce0d78513
immintrin.h did not come until intel version 11
2014-03-26 22:26:07 -04:00
Benoit Steiner
a419cea4a0
Created the ptranspose packet primitive that can transpose an array of N packets, where N is the number of words in each packet. This primitive will be used to complete the vectorization of the gemm_pack_lhs and gemm_pack_rhs functions.
...
Implemented the primitive using SSE instructions.
2014-03-26 19:03:07 -07:00
Benoit Steiner
14bc4b9704
Made sure that the version of gemm_pack_rhs specialized for row major matrices is vectorized when nr == 2*PacketSize (which is the case for SSE when compiling in 64bit mode).
2014-03-26 17:35:18 -07:00
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
Gael Guennebaud
0a6c472335
A bit of cleaning
2014-03-13 15:44:20 +01:00
Christoph Hertzberg
2db792852f
Silence stupid parenthesis warnings for old GCC versions (<= 4.6.x)
2014-03-13 12:58:57 +01:00
Gael Guennebaud
aceae8314b
Resurect EvalBeforeNestingBit to control nested_eval
2014-03-12 20:25:36 +01:00
Gael Guennebaud
f74ed34539
Fix regressions in redux_evaluator flags and evaluator<Block> flags
2014-03-12 18:14:08 +01:00
Gael Guennebaud
5e26b7cf9d
Extend evaluation traits debuging info
2014-03-12 18:13:18 +01:00
Gael Guennebaud
74b1d79d77
merge default and evaluator branches
2014-03-12 16:24:25 +01:00
Gael Guennebaud
0b362e0c9a
This file is not needed anymore
2014-03-12 16:18:54 +01:00
Gael Guennebaud
a6be1952f4
Fix a few regression when moving the flags
2014-03-12 16:18:34 +01:00
Christoph Hertzberg
2379ccffcb
bug #755 : CommaInitializer produced wrong assertions in absence of ReturnValueOptimization.
2014-03-12 13:48:09 +01:00
Christoph Hertzberg
88aa18df64
bug #759 : Removed hard-coded double-math from Quaternion::angularDistance.
...
Some documentation improvements
2014-03-12 13:43:19 +01:00
Gael Guennebaud
0bd5671b9e
Fix Eigenvalues module
2014-03-12 13:35:44 +01:00
Gael Guennebaud
8dd3b716e3
Move evaluation related flags from traits to evaluator and fix evaluators of MapBase and Replicate
2014-03-12 13:34:11 +01:00
Gael Guennebaud
7eefdb948c
Migrate JacobiSVD to Solver
2014-03-11 13:43:46 +01:00
Gael Guennebaud
082f7ddc37
Port Cholesky module to evaluators
2014-03-11 13:33:44 +01:00
Christoph Hertzberg
bbc0ada12a
Avoid stupid "enumeral mismatch in conditional expression" warnings in GCC
2014-03-11 12:18:32 +01:00
Gael Guennebaud
9be72cda2a
Port QR module to Solve/Inverse
2014-03-11 11:47:32 +01:00
Gael Guennebaud
ae40583965
Fix CoeffReadCost issues
2014-03-11 11:47:14 +01:00
Gael Guennebaud
5806e73800
It is not clear what XprType::Nested should be, so let's use nested<Xpr>::type as much as possible
2014-03-11 11:44:11 +01:00
Gael Guennebaud
2bf63c6b4a
Even ReturnByValue should not evaluate when assembling the expression
2014-03-11 11:42:07 +01:00
Gael Guennebaud
da6ec81282
Move CoeffReadCost mechanism to evaluators
2014-03-10 23:24:40 +01:00
Gael Guennebaud
354bd8a428
Hide legacy dense assignment routines with EIGEN_TEST_EVALUATORS
2014-03-10 09:30:58 +01:00
Gael Guennebaud
5c0f294098
Fix evaluators unit test (i.e., when only EIGEN_ENABLE_EVALUATORS is defined
2014-03-10 09:28:00 +01:00
Abraham Bachrach
804ef2350d
Move the Base typedef's from private to public scope
...
Move the Quaternion::Base typedef from private to public scope so that one may
create child classes of Quaternion.
NOTE: This matches the semantics of MatrixBase.
2014-03-09 16:56:44 -07: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
Gael Guennebaud
cbc572caf7
Split LU/Inverse.h to Core/Inverse.h for the generic Inverse expression, and LU/InverseImpl.h for the dense implementation of dense.inverse()
2014-02-24 11:49:30 +01:00
Gael Guennebaud
1e0c2f6ddb
Hide some deprecated classes.
2014-02-24 11:41:19 +01:00
Gael Guennebaud
c98881e130
By-pass ProductBase for triangular and selfadjoint products and get rid of ProductBase
2014-02-23 22:51:13 +01:00
Gael Guennebaud
d67548f345
Get rid of GeneralProduct<> for GemvProduct
2014-02-21 17:13:28 +01:00
Gael Guennebaud
6c7ab50811
Get rid of GeneralProduct<> for GemmProduct
2014-02-21 16:43:03 +01:00
Gael Guennebaud
728c3d2cb9
Get rid of GeneralProduct for outer-products, and get rid of ScaledProduct
2014-02-21 16:27:24 +01:00
Gael Guennebaud
af31b6c37a
Generalize evaluator<Inverse<>> such that there is no need to specialize it
2014-02-21 15:22:08 +01:00
Gael Guennebaud
93125e372d
Port LU module to evaluators (except image() and kernel())
2014-02-20 15:26:15 +01:00
Gael Guennebaud
b2e1453e1e
Some bit flags and internal structures are deprecated
2014-02-20 15:25:06 +01:00
Gael Guennebaud
9621333545
Fix dimension of Solve expression
2014-02-20 15:24:21 +01:00
Gael Guennebaud
5f6ec95291
Propagate LvalueBit flag to TriangularView
2014-02-20 15:24:00 +01:00
Gael Guennebaud
ecd2c8f37b
Add general Inverse<> expression with evaluator
2014-02-20 14:18:24 +01:00
Gael Guennebaud
5960befc20
More int versus Index fixes
2014-02-19 21:42:29 +01:00
Gael Guennebaud
2eee6eaf3c
Fix mixing scalar types with evaluators
2014-02-19 16:30:17 +01:00
Gael Guennebaud
95b0a6707b
evaluator<Replicate> must evaluate its argument to avoid redundant evaluations
2014-02-19 14:51:46 +01:00
Gael Guennebaud
b1ab6a8e0b
Add missing assertion in swap()
2014-02-19 14:06:35 +01:00
Gael Guennebaud
61cff28618
Disable Flagged and ForceAlignedAccess
2014-02-19 14:05:56 +01:00
Gael Guennebaud
68e8ddaf94
Fix vectorization logic wrt assignment functors
2014-02-19 13:26:07 +01:00
Gael Guennebaud
3a735a6cf1
Fix lazy evaluation in Ref
2014-02-19 13:17:41 +01:00
Gael Guennebaud
ccc41128fb
Add a Solve expression for uniform treatment of solve() methods.
2014-02-19 11:33:29 +01:00
Gael Guennebaud
b3a07eecc5
Fix CoeffReadCost of products to handle Dynamic costs
2014-02-19 11:32:04 +01:00
Gael Guennebaud
c16b80746a
isApprox must honors nested_eval
2014-02-19 11:30:58 +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
5b78780def
Add evaluator shortcut for triangular ?= product
2014-02-18 17:43:16 +01:00
Gael Guennebaud
8169c6ac59
Simplify implementation of coeff-based products to fully exploit our reduxion mechanisms.
...
If this results in performance regressions, then we should optimize reduxion rather than
somehow duplicate the code.
2014-02-18 16:57:25 +01:00
Gael Guennebaud
463554c254
Merge with default branch
2014-02-18 15:45:39 +01:00
Gael Guennebaud
82c066b3c4
Cleaning
2014-02-18 15:44:32 +01:00
Gael Guennebaud
0543cb51b5
Product::coeff method are also OK for lazy products (including diagonal products)
2014-02-18 14:51:41 +01:00
Gael Guennebaud
99e27916cf
Fix all()/any() for evaluators
2014-02-18 14:26:25 +01:00
Gael Guennebaud
37a1d736bf
_MatrixTypeNested must be public in sparse Block
2014-02-18 13:35:24 +01:00
Gael Guennebaud
06545058bb
Temporary workaround for permutations
2014-02-18 13:33:04 +01:00
Gael Guennebaud
7002aa858f
Support Product::coeff(0,0) even for dynamic matrices
2014-02-18 13:32:30 +01:00
Gael Guennebaud
8cfb138e73
Finally, the simplest remains to deffer resizing at the latest
2014-02-18 13:31:44 +01:00
Gael Guennebaud
1b5de5a37b
Add evaluator for Ref
2014-02-18 13:30:16 +01:00
Gael Guennebaud
a08cba6b5f
Move is_diagonal to XprHelper, forward declare Ref
2014-02-18 11:03:59 +01:00
Gael Guennebaud
573c587e3d
New design for handling automatic transposition
2014-02-18 10:53:14 +01:00
Gael Guennebaud
551bf5c66a
Get rid of DiagonalProduct
2014-02-18 10:52:26 +01:00
Gael Guennebaud
2d136d3d7f
Get rid of SeflCwiseBinaryOp
2014-02-18 10:52:00 +01:00
Gael Guennebaud
873401032b
Fix scalar * product optimization when 'product' includes a selfadjoint matrix
2014-02-17 19:00:45 +01:00
Gael Guennebaud
d595fd31f5
Deal with automatic transposition in call_assignment, fix a few shortcomings
2014-02-17 16:11:55 +01:00
Gael Guennebaud
bffa15142c
Add evaluator support for diagonal products
2014-02-17 16:10:55 +01:00
Gael Guennebaud
3573a10712
Fix support for row (resp. column) of a column-major (resp. row-major) sparse matrix
2014-02-17 13:46:17 +01:00
Gael Guennebaud
4b6b3f310f
Fix a few Index to int buggy conversions
2014-02-15 09:35:23 +01:00
Gael Guennebaud
cd606bbc94
Fix infinite loop in sparselu
2014-02-14 23:10:16 +01: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
0b1430ae10
Fix propagation of index type
2014-02-13 23:58:28 +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
Gael Guennebaud
31c63ef0b4
fix compilation of Transform * UniformScaling
2014-02-12 13:37:23 +01:00
Jitse Niesen
ff8d81762d
Fix bug #736 : LDLT isPositive returns false for a positive semidefinite matrix
...
Add unit test covering this case.
2014-02-06 11:06:06 +00:00
Hauke Heibel
6c527bd811
Fixed assignment from QMatrix to Transform for compact storage.
2014-02-04 07:02:34 +01:00
Benoit Steiner
64a85800bd
Added support for AVX to Eigen.
2014-01-29 11:43:05 -08:00
Gael Guennebaud
94acccc126
Fix Random().normalized() by introducing a nested_eval helper (recall that the old nested<> class is deprecated)
2014-01-26 15:35:44 +01:00
Gael Guennebaud
34694d8828
Fix evaluator<Replicate> for fixed size objects
2014-01-26 15:34:26 +01:00
Gael Guennebaud
ee1c55f923
Add missing template keyword
2014-01-26 14:55:25 +01:00
Gael Guennebaud
f54e62e4a9
Port evaluation from selfadjoint to full to evaluators
2014-01-26 12:18:36 +01:00
Gael Guennebaud
5fa7262e4c
Refactor triangular assignment
2014-01-25 23:02:14 +01:00
Gael Guennebaud
fef534f52e
fix scalar * prod in evaluators unit test
2014-01-25 19:06:07 +01: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
Christoph Hertzberg
66f1c56aab
sparse_solve_retval_base::defaultEvalTo created extremely oversized temporary matrices in some cases
2014-01-19 03:04:51 +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
Christoph Hertzberg
60cd361ebe
Fix bug #222 . Make temporary matrix column-major independently of EIGEN_DEFAULT_TO_ROW_MAJOR
2014-03-26 17:48:30 +01:00
Gael Guennebaud
c8bfbf4a7e
Merged in prclibo/eigen (pull request PR-49)
...
fixed a template type conversion bug in AngleAxis found by Pei Luo
2014-03-25 10:54:40 +01: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
Bo Li
e3fb190edf
merged incoming udpates
2014-03-20 22:11:13 +08:00
Bo Li
cfd3d6ce9c
fixed a template type conversion bug in AngleAxis found by Pei Luo
2014-03-20 22:05:40 +08: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
Jitse Niesen
a58325ac2f
Minor corrections in QR docs.
2013-12-31 18:06:28 +00:00
Gael Guennebaud
548216b7ca
QuaternionBase::slerp was documented twice and one explanation was ambiguous.
2014-01-12 11:09:06 +01:00
Christoph Hertzberg
bbf373bbe9
Applied patch from Richard JW Roberts, resolving bug #704
2013-12-21 22:14:03 +01:00
Christoph Hertzberg
1200bd2ef0
Grafted from 5725:cdedc9e90d21099e8b3191f95425680ebe710d6f
...
and resolved conflicts
2013-12-21 21:46:27 +01:00
Christoph Hertzberg
8a49dd5626
Fixed typos in comments
2013-12-19 11:55:17 +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
Gael Guennebaud
72461be962
Fix typo and formating
2014-03-07 23:13:14 +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
76d2ca27e5
Fix PaStiX support for Pastix 5.2
2014-02-28 13:11:39 +01:00
Gael Guennebaud
ac69d8769f
Remove early termination in LDLT: the zero on the diagonal of the input matrix does not mean the matrix is not full rank. Typical examples are matrices coming from LS with linear equality constraints.
2014-02-26 10:12:27 +01:00
Christoph Hertzberg
6b6071866b
Make pivoting HouseholderQR compatible with custom scalar types
2014-02-25 18:55:16 +01:00
Gael Guennebaud
d357bbd9c0
Fix a few regression regarding temporaries and products
2013-12-14 22:53:47 +01:00
Gael Guennebaud
27c068e9d6
Make selfqdjoint products use evaluators
2013-12-13 18:09:07 +01:00
Gael Guennebaud
e94fe4cc3e
fix resizing in noalias for blocks, and make -=/+= use evaluators
2013-12-13 18:06:58 +01:00
Gael Guennebaud
2ca0ccd2f2
Add support for triangular products with evaluators
2013-12-07 17:17:47 +01:00
Gael Guennebaud
8d8acc3ab4
Move inner product special functions to a base class to avoid ambiguous calls
2013-12-04 22:58:19 +01:00
Gael Guennebaud
6c5e915e9a
Enable use of evaluators for noalias and lazyProduct, add conversion to scalar for inner products
2013-12-03 17:17:53 +01:00
Gael Guennebaud
f0b82c3ab9
Make reductions compatible with evaluators
2013-12-02 17:54:38 +01:00
Gael Guennebaud
6f1a0479b3
fix a typo triangular assignment
2013-12-02 17:54:15 +01:00
Gael Guennebaud
b5fd774775
Fix flags of Product<>
2013-12-02 17:53:26 +01:00
Gael Guennebaud
34ca81b1bf
Add direct assignment of products
2013-12-02 16:37:58 +01:00
Gael Guennebaud
7f917807c6
Fix product evaluator when TEST_EVALUATOR in not ON
2013-12-02 16:19:14 +01:00
Gael Guennebaud
8af1ba5346
Make swap unit test work with evaluators
2013-12-02 15:07:45 +01:00
Gael Guennebaud
c6f7337032
Get rid of call_dense_swap_loop
2013-12-02 14:44:13 +01:00
Gael Guennebaud
626821b0e3
Add evaluator/assignment to TriangularView expressions
2013-12-02 14:06:17 +01:00
Gael Guennebaud
27ca9437a1
Fix usage of Dense versus DenseShape
2013-12-02 14:05:34 +01:00
Gael Guennebaud
d0261bd26c
Fix swap in DenseBase
2013-11-30 10:42:23 +01:00
Christoph Hertzberg
d61345f366
Fix bug #609 : Euler angles are in Range [0:pi]x[-pi:pi]x[-pi:pi].
...
Now the unit test verifies this (also that it is bijective in this range).
2013-11-29 19:42:11 +01:00
Gael Guennebaud
c15c65990f
First step toward the generalization of evaluators to triangular, sparse and other fancyness.
...
Remove product_tag template parameter to Product.
2013-11-29 17:50:59 +01:00