Basil Fierz
624df50945
Adds missing EIGEN_STRONG_INLINE to support MSVC properly inlining small vector calculations
...
When working with MSVC often small vector operations are not properly inlined. This behaviour is observed even on the most recent compiler versions.
2017-10-26 22:44:28 +02:00
Benoit Steiner
4a7df114c8
Added missing EIGEN_DEVICE_FUNC
2017-02-28 14:00:15 -08:00
Gael Guennebaud
2299717fd5
Fix and workaround several doxygen issues/warnings
2017-01-04 23:27:33 +01:00
Angelos Mantzaflaris
aeba0d8655
fix two warnings(unused typedef, unused variable) and a typo
...
(grafted from a9aa3bcf50d55b63c8adb493a06c903ec34251c6
)
2016-12-01 21:23:43 +01:00
Gael Guennebaud
66e99ab6a1
Relax mixing-type constraints for binary coefficient-wise operators:
...
- Replace internal::scalar_product_traits<A,B> by Eigen::ScalarBinaryOpTraits<A,B,OP>
- Remove the "functor_is_product_like" helper (was pretty ugly)
- Currently, OP is not used, but it is available to the user for fine grained tuning
- Currently, only the following operators have been generalized: *,/,+,-,=,*=,/=,+=,-=
- TODO: generalize all other binray operators (comparisons,pow,etc.)
- TODO: handle "scalar op array" operators (currently only * is handled)
- TODO: move the handling of the "void" scalar type to ScalarBinaryOpTraits
2016-06-06 15:11:41 +02:00
Gael Guennebaud
8b6f53222b
bug #1193 : fix lpNorm<Infinity> for empty input.
2016-06-02 15:29:59 +02:00
Gael Guennebaud
1cf85bd875
bug #977 : add stableNormalize[d] methods: they are analogues to normalize[d] but with carefull handling of under/over-flow
2016-01-23 22:40:11 +01:00
Gael Guennebaud
ee37eb4eed
bug #977 : avoid division by 0 in normalize() and normalized().
2016-01-21 20:43:42 +01:00
Gael Guennebaud
8dca9f97e3
Add numext::sqrt function to enable custom optimized implementation.
...
This changeset add two specializations for float/double on SSE. Those
are mostly usefull with GCC for which std::sqrt add an extra and costly
check on the result of _mm_sqrt_*. Clang does not add this burden.
In this changeset, only DenseBase::norm() makes use of it.
2016-01-21 20:18:51 +01:00
Gael Guennebaud
29bb599e03
Fix numerous doxygen issues in auto-link generation
2015-12-30 16:04:24 +01:00
Gael Guennebaud
02e940fc9f
bug #1071 : improve doc on lpNorm and add example for some operator norms
2015-09-28 11:55:36 +02:00
Nicolas Mellado
1dd6a329e8
Cuda compatibility: remove explicit call to std math functions
2015-07-11 19:40:15 +02:00
Gael Guennebaud
29eaa2b0f1
Make MatrixBase::is* methods aware of nested_eval.
2015-03-24 13:42:42 +01:00
Gael Guennebaud
0ca43f7e9a
Remove deprecated code not used by evaluators
2014-09-18 15:15:27 +02:00
Gael Guennebaud
2a3c3c49a1
Fix numerous nested versus nested_eval shortcomings
2014-08-01 14:48:22 +02:00
Gael Guennebaud
61b88d2feb
merge with default branch
2014-07-02 09:35:37 +02:00
Christoph Hertzberg
324e7e8fc9
Removed the deprecated EIGEN2_SUPPORT, as previously announced. A compilation error is raised, if this compile-switch is defined. The documentation references to the corresponding pages from Eigen3.2 now. Also, the Eigen2 testsuite has been removed.
2014-07-01 16:58:11 +02: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
2f593ee67c
merge with main branch
2013-07-17 13:21:35 +02:00
Gael Guennebaud
8cc9b12589
Add missing using std::pow in lpNorm.
2013-06-21 11:37:33 +02:00
Gael Guennebaud
62670c83a0
Fix bug #314 : move remaining math functions from internal to numext namespace
2013-06-10 23:40:56 +02:00
Gael Guennebaud
64054ee396
Add nvcc support for normalize, initializers, and fuzzy comparisons
2013-06-05 15:38:33 +02:00
Gael Guennebaud
12439e1249
Port SelfCwiseBinaryOp and Dot.h to nvcc, fix portability issue with std::min/max
2013-04-05 16:35:49 +02:00
Gael Guennebaud
a76fbbf397
Fix bug #314 :
...
- remove most of the metaprogramming kung fu in MathFunctions.h (only keep functions that differs from the std)
- remove the overloads for array expression that were in the std namespace
2012-11-06 15:25:50 +01:00
Benoit Jacob
69124cfca2
Automatic relicensing to MPL2 using Keirs script. Manual fixup follows.
2012-07-13 14:42:47 -04:00
Gael Guennebaud
a2ace4b79a
bug #482 : pass scalar arguments by const references. This changeset only concerns the Core and Geometry modules
2012-06-28 02:08:59 +02:00
Jitse Niesen
3c412183b2
Get rid of include directives inside namespace blocks (bug #339 ).
2012-04-15 11:06:28 +01:00
Gael Guennebaud
9c86ee2695
fix static inline versus inline static issues (the former is the correct order)
2012-01-31 12:58:52 +01:00
Gael Guennebaud
a55c27a15f
fix documentation of norm
2011-06-18 08:30:34 +02:00
Benoit Jacob
aedccbf52f
back out 842881cfb1b8ece6e41c58f0466ae979e514d001
2011-06-15 09:59:10 -04:00
Andy Somerville
842881cfb1
bug #298 - let normalize() return a reference to *this
2011-06-15 00:30:11 -04:00
Benoit Jacob
dc22ae101f
kill stage 15, it's useless
2011-01-31 09:18:49 -05:00
Benoit Jacob
b2b8c6a89c
dot() now always uses eigen3 convention, even in eigen2 support mode, even stage 10. Didn't have a choice as lots of eigen code is using it.
2011-01-27 12:04:26 -05:00
Gael Guennebaud
0bfb78c824
allow mixed complex-real and real-complex dot products
2011-01-27 09:59:19 +01:00
Benoit Jacob
8df5bca979
rename build stages to multiples of 10; old stage 2 becomes stage 15, while stage 20 generates errors (instead of warnings) on conflicting API.
2011-01-23 18:22:18 -05:00
Benoit Jacob
cc2b7a5397
introduce the 3 stages of eigen2 support, writing to the mailing list about that in Eigen2 to Eigen3 Migration Path thread
2011-01-21 09:51:03 -05:00
Hauke Heibel
7bc8e3ac09
Initial fixes for bug #85 .
...
Renamed meta_{true|false} to {true|false}_type, meta_if to conditional, is_same_type to is_same, un{ref|pointer|const} to remove_{reference|pointer|const} and makeconst to add_const.
Changed boolean type 'ret' member to 'value'.
Changed 'ret' members refering to types to 'type'.
Adapted all code occurences.
2010-10-25 22:13:49 +02:00
Benoit Jacob
4716040703
bug #86 : use internal:: namespace instead of ei_ prefix
2010-10-25 10:15:22 -04:00
Benoit Jacob
3404d5fb14
improvements in pages 5 and 7 of the tutorial.
2010-10-18 09:09:30 -04:00
Gael Guennebaud
e38fc9692d
add a conj_product functor and optimize dot products
2010-07-07 10:00:08 +02:00
Gael Guennebaud
7fd8418b19
finish to merge Array into Core:
...
- mv Array/* into Core/
- merge Functors.h files, and move Norms.h into Dot.h
2010-06-19 23:36:38 +02:00
Hauke Heibel
e40852d282
Fixes #104 .
2010-06-02 19:17:41 +02:00
Benoit Jacob
aaaade4b3d
the Index types change.
...
As discussed on the list (too long to explain here).
2010-05-30 16:00:58 -04:00
Benoit Jacob
e277586958
Complete rework of global math functions and NumTraits.
...
* Now completely generic so all standard integer types (like char...) are supported.
** add unit test for that (integer_types).
* NumTraits does no longer inherit numeric_limits
* All math functions are now templated
* Better guard (static asserts) against using certain math functions on integer types.
2010-04-28 18:51:38 -04:00
Benoit Jacob
f1f3c30ddc
remove the hack to make the static assertion on types actually show up.
...
indeed, now that we use the meta selector for transposing as needed, the static asserts work very well.
2010-02-28 11:10:13 -05:00
Benoit Jacob
3f393490ad
dot: handle the rowvector.dot(colvector) case where one needs to transpose.
2010-02-27 11:19:14 -05:00
Benoit Jacob
d9f6380499
Remove the dot product's separate implementation and use cwiseProduct.sum instead.
...
Also take special care to get nicely working static assertions.
2010-02-27 10:03:27 -05:00
Hauke Heibel
abc8c01080
Renamed PlainMatrixType to PlainObject (Array != Matrix).
...
Renamed ReturnByValue::ReturnMatrixType ReturnByValue::ReturnType (again, Array != Matrix).
2010-02-20 15:53:57 +01:00
Gael Guennebaud
eaaba30cac
merge with default branch
2009-12-22 22:51:08 +01:00
Gael Guennebaud
e3d890bc5a
Another big refactoring change:
...
* add a new Eigen2Support module including Cwise, Flagged, and some other deprecated stuff
* add a few cwiseXxx functions
* adapt a few modules to use cwiseXxx instead of the .cwise() prefix
2009-11-18 18:15:19 +01:00