Rasmus Munk Larsen
1cb1ffd5b2
Use bit_cast to create -0.0 for floating point types to avoid compiler optimization changing sign with --ffast-math enabled.
...
(cherry picked from commit fc87e2cbaa )
2021-06-11 02:57:02 +00:00
Rasmus Munk Larsen
54425a39b2
Make vectorized compute_inverse_size4 compile with AVX.
...
(cherry picked from commit 85a76a16ea )
2021-04-22 17:25:25 +00:00
Christoph Hertzberg
6197ce1a35
Replace -2147483648 by -0.0f or -0.0 constants (this should fix #2189 ).
...
Also, remove unnecessary `pgather` operations.
2021-04-07 11:25:27 +00:00
Antonio Sanchez
60218829b7
EOF newline added to InverseSize4.
...
Causing build breakages due to `-Wnewline-eof -Werror` that seems to be
common across Google.
2020-11-18 07:58:33 -08:00
Guoqiang QI
394f564055
Unify Inverse_SSE.h and Inverse_NEON.h into a single generic implementation using PacketMath.
2020-11-17 12:27:01 +00:00
David Tellenbach
f66f3393e3
Use reinterpret_cast instead of C-style cast in Inverse_NEON.h
2020-10-04 00:35:09 +02:00
Rasmus Munk Larsen
22c971a225
Don't cast away const in Inverse_NEON.h.
2020-10-02 15:06:34 -07:00
Rasmus Munk Larsen
068121ec02
Add missing newline at the end of Inverse_NEON.h
2020-09-29 15:32:52 +00:00
Rasmus Munk Larsen
31a6b88ff3
Disable double version of compute_inverse_size4 on Inverse_NEON.h if Packet2d is not supported.
2020-09-17 23:51:06 +00:00
Stephen Zheng
5f25bcf7d6
Add Inverse_NEON.h
...
Implemented fast size-4 matrix inverse (mimicking Inverse_SSE.h) using NEON intrinsics.
```
Benchmark Time CPU Time Old Time New CPU Old CPU New
--------------------------------------------------------------------------------------------------------
BM_float -0.1285 -0.1275 568 495 572 499
BM_double -0.2265 -0.2254 638 494 641 496
```
2020-09-04 10:55:47 +00:00
Gael Guennebaud
37c91e1836
bug #1644 : fix warning
2018-12-11 22:07:20 +01:00
Gael Guennebaud
8c48d42530
Fix 4x4 inverse with non-linear destination
2016-08-30 23:16:38 +02:00
Gael Guennebaud
35a8e94577
bug #1167 : simplify installation of header files using cmake's install(DIRECTORY ...) command.
2016-08-29 10:59:37 +02:00
Gael Guennebaud
1f5024332e
First part of a big refactoring of alignment control to enable the handling 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.
2015-08-06 15:31:07 +02:00
Gael Guennebaud
26d2cdefd4
Fix 4x4 inverse via SSE for submatrices
2014-07-31 16:24:29 +02:00
Benoit Jacob
69124cfca2
Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.
2012-07-13 14:42:47 -04:00
Jitse Niesen
3c412183b2
Get rid of include directives inside namespace blocks (bug #339 ).
2012-04-15 11:06:28 +01:00
Keir Mierle
2d4fee0b40
Fix out-of-range int constant in 4x4 inverse.
...
(transplanted from 45bcad41b4
)
2012-01-05 23:15:09 -08:00
Gael Guennebaud
40287d2fd9
remove the use of non standard long long
2011-06-14 10:56:47 +02:00
Benoit Jacob
4716040703
bug #86 : use internal:: namespace instead of ei_ prefix
2010-10-25 10:15:22 -04:00
Gael Guennebaud
a47bbf664c
fix 4x4 SSE inversion when storage orders don't match
2010-08-24 13:00:59 +02:00
Gael Guennebaud
ad9a7c69bc
fix inversion of 4x4 unaligned matrices
2010-08-24 12:28:42 +02:00
Gael Guennebaud
28e64b0da3
email change
2010-06-24 23:21:58 +02:00
Gael Guennebaud
7c41fb66f8
fix compilation on 32bits systems
2010-02-01 11:45:08 +01:00
Gael Guennebaud
d5d5417062
add SSE code (from Intel) for the fast inversion of 4x4 matrices of double
2010-01-19 16:04:04 +01:00
Gael Guennebaud
60b0ddc3e1
update the fast 4x4 SSE inversion code from more recent Intel's code
2010-01-19 15:33:45 +01:00
Gael Guennebaud
a314814a6e
suppress unused variable warnings
2009-12-15 13:59:02 +01:00
Benoit Jacob
949f14e1e4
no, this wasn't equivalent to ei_pload at all, after all!
2009-12-15 07:43:05 -05:00
Benoit Jacob
805eb9cc8b
Gael, who is a man of few words^Winstructions, is right, as usual.
2009-12-15 06:50:40 -05:00
Benoit Jacob
4948448939
*use scalar instructions, packet not needed here
...
*remove unused var warning
2009-12-14 23:13:54 -05:00
Benoit Jacob
d02eccf584
add SSE path for Matrix4f inverse, taken from Intel except that we do a kosher
...
division instead of RCPPS-followed-by-Newton-Raphson. The rationale for that is
that elsewhere in Eigen we dont allow ourselves this approximation (which throws
2 bits of mantissa), so there's no reason we should allow it here.
2009-12-14 22:47:14 -05:00