| Commit message (Collapse) | Author | Age |
|
|
|
| |
* optimize mixed scalar products
|
|
|
|
| |
* optimize SSE ei_ploaddup<Packet4f>
|
| |
|
|
|
|
|
|
|
|
| |
* pload* and pset1 are now templated on the packet type
* gemv routines are now embeded into a structure with
a consistent API with respect to gemm
* some configurations of vector * matrix and matrix * matrix works fine,
some need more work...
|
|\ |
|
| |
| |
| |
| | |
also not a speed regression, and replaces 3 instructions by 1 single instruction.
|
| | |
|
|/
|
|
|
| |
* add a, Alignable trait
* update LinearVectorization assignment
|
| |
|
| |
|
|
|
|
| |
* vectorize complex<double>
|
| |
|
|
|
|
| |
* extend the packing routines to support conjugation
|
|
|
|
| |
return type
|
| |
|
|
|
|
|
|
|
| |
replaced _mm_prefetch in GeneralBlockPanelKernel.h, with ei_prefetch() inline function.
Implemented NEON and AltiVec versions, copied SSE version over from GeneralBlockPanelKernel.h.
Also in GCC case (or rather !_MSC_VER) it's implemented using __builtin_prefetch().
NEON managed to give a small but welcome boost, 0.88GFLOPS -> 0.91GFLOPS.
|
| |
|
|
|
|
|
|
|
|
| |
inline function.
Implemented NEON and AltiVec versions, copied SSE version over from GeneralBlockPanelKernel.h.
Also in GCC case (or rather !_MSC_VER) it's implemented using __builtin_prefetch().
NEON managed to give a small but welcome boost, 0.88GFLOPS -> 0.91GFLOPS.
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| | |
(sse3, ssse3 and sse4), independantly from the compiler.
Only those defines should be used in other places, and the user can
rely on those to know which sets are used.
|
|/ |
|
|
|
|
|
|
|
|
|
| |
Added setLinSpaced/LinSpaced functionality to DenseBase.
Improved vectorized assignment - overcomes MSVC optimization issues.
CwiseNullaryOp is now requiring functors to offer 1D and 2D operators.
Adapted existing functors to the new CwiseNullaryOp requirements.
Added ei_plset to create packages as [a, a+1, ..., a+size].
Added more nullaray unit tests.
|
|
|
|
|
| |
Fixed multiple overloads for operator=.
Removed debug output.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
significantly simplify the code of these checks while extending them
to catch much more expressions!
* move the enabling/disabling of vectorized sin/cos to the architecture traits
|
| | |
|
|/
|
|
|
|
| |
Add an internal pseudo expression allowing to optimize operators like +=, *= using
the copyCoeff stuff.
This allows to easily enforce aligned load for the destination matrix everywhere.
|
|\
| |
| |
| | |
* remove a ctor in QuaternionBase as it gives a strange error with GCC 4.4.2.
|
| |
| |
| |
| | |
for 64 bit builds.
|
|/
|
|
| |
influence compiler optimization.
|
|
|
|
|
|
|
|
| |
multiple of 16 bytes;
now we also align to 8byte boundary fixed-size objects that are multiple of 8 bytes.
That's only useful for now for double, not e.g. for Vector2f, but that didn't seem to hurt. Am I missing something? Do you prefer that we don't align Vector2f at all?
Also, improvements in test_unalignedassert.
|
|
|
|
| |
the previous fix is ok
|
|
|
|
| |
perf. issue...
|
| |
|
|
|
|
| |
* workaround GCC bad implementation of _mm_set1_p*
|
| |
|
| |
|
|
|
|
| |
(this allows to avoid incompatible pointer casts and to specify the dependency to the data explicitely)
|
|
|
|
| |
with my tricks
|
|
|
|
| |
it never made very precise sense. but now does it still make any?
|
| |
|
|
|
|
|
|
|
|
| |
Pommier. They are for float only, and they return exactly the same
result as the standard versions in about 90% of the cases. Otherwise the max error
is below 1e-7. However, for very large values (>1e3) the accuracy of sin and cos
slighlty decrease. They are about 3 or 4 times faster than 4 calls to their respective
standard versions. So, is it ok to enable them by default in their respective functors ?
|
|
|
|
| |
broken)
|
| |
|
| |
|
|
|
|
| |
unaligned loads)
|
|
|
|
| |
* add vectorization for minCoeff and maxCoeff
|
|
|
|
| |
* apply Ricard Marxer's prod() patch with fixes for the vectorized path
|
|
|
|
| |
simplify the index based functions
|