439 Commits

Author SHA1 Message Date
Gael Guennebaud
2b3fc981b8 bug #1362: workaround constant conditional warning produced by MSVC 2016-12-20 22:52:27 +01:00
Gael Guennebaud
f5d644b415 Make sure that HyperPlane::transform manitains a unit normal vector in the Affine case. 2016-12-20 09:35:00 +01:00
ermak
d60cca32e5 Transformation methods added to ParametrizedLine class. 2016-12-17 00:45:13 +07:00
Gael Guennebaud
3f1d0cdc22 bug #1337: improve doc of homogeneous() and hnormalized() 2016-11-03 11:03:08 +01:00
Gael Guennebaud
3ecb343dc3 Fix regression in X = (X*X.transpose())/s with X rectangular by deferring resizing of the destination after the creation of the evaluator of the source expression. 2016-10-26 22:50:41 +02:00
Robert Lukierski
a94791b69a Fixes for min and abs after Benoit's comments, switched to numext. 2016-10-13 15:00:22 +01:00
Robert Lukierski
86711497c4 Adding EIGEN_DEVICE_FUNC in the Geometry module.
Additional CUDA necessary fixes in the Core (mostly usage of
EIGEN_USING_STD_MATH).
2016-10-12 16:35:17 +01:00
Gael Guennebaud
4860727ac2 Remove static qualifier of free-functions (inline is enough and this helps ICC to find the right overload) 2016-10-07 09:21:12 +02:00
Gael Guennebaud
8b84801f7f bug #1310: workaround a compilation regression from 3.2 regarding triangular * homogeneous 2016-09-30 22:49:59 +02:00
Gael Guennebaud
67b4f45836 Fix angle range 2016-09-30 12:46:33 +02:00
Gael Guennebaud
27f3970453 Remove std:: prefix 2016-09-30 12:40:41 +02:00
Gael Guennebaud
3860a0bc8f bug #1312: Quaternion to AxisAngle conversion now ensures the angle will be in the range [-pi,pi]. This also increases accuracy when q.w is negative. 2016-09-29 23:23:35 +02:00
Gael Guennebaud
86caba838d bug #1304: fix Projective * scaling and Projective *= scaling 2016-09-23 13:41:21 +02:00
Hongkai Dai
5dcc6d301a remove ternary operator in euler angles 2016-09-19 10:30:30 -07:00
Gael Guennebaud
c10620b2b0 Fix typo in doc. 2016-09-13 09:25:07 +02:00
Gael Guennebaud
9c9e23858e Doc: split customizing-eigen page into sub-pages and re-structure a bit the different topics 2016-08-30 11:10:08 +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
18884f17d7 Remove static constant declaration: this enforces compiler to generate costly code for thread safety. 2016-07-18 15:05:17 +02:00
Gael Guennebaud
91b3039013 Change the semantic of the last template parameter of Assignment from "Scalar" to "SFINAE" only.
The previous "Scalar" semantic was obsolete since we allow for different scalar types in the source and destination expressions.
On can still specialize on scalar types through SFINAE and/or assignment functor.
2016-07-04 11:02:00 +02:00
Gael Guennebaud
76236cdea4 merge 2016-06-14 15:33:47 +02:00
Gael Guennebaud
deb8306e60 Move MatrixBase::operaotr*(UniformScaling) as a free function in Scaling.h, and fix return type. 2016-06-14 11:28:03 +02:00
Gael Guennebaud
64fcfd314f Implement scalar multiples and division by a scalar as a binary-expression with a constant expression.
This slightly complexifies the type of the expressions and implies that we now have to distinguish between scalar*expr and expr*scalar to catch scalar-multiple expression (e.g., see BlasUtil.h), but this brings several advantages:
- it makes it clear on each side the scalar is applied,
- it clearly reflects that we are dealing with a binary-expression,
- the complexity of the type is hidden through macros defined at the end of Macros.h,
- distinguishing between "scalar op expr" and "expr op scalar" is important to support non commutative fields (like quaternions)
- "scalar op expr" is now fully equivalent to "ConstantExpr(scalar) op expr"
- scalar_multiple_op, scalar_quotient1_op and scalar_quotient2_op are not used anymore in officially supported modules (still used in Tensor)
2016-06-14 11:26:57 +02: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
Abhijit Kundu
0beabb4776 Fixed type conversion from int 2016-06-08 16:12:04 -04:00
Gael Guennebaud
df24f4a01d bug #1201: improve code generation of affine*vec with MSVC 2016-06-06 16:46:46 +02:00
Gael Guennebaud
0ba32f99bd Rename UniformRandom to UnitRandom. 2016-05-20 13:21:34 +02:00
Gael Guennebaud
7a9d9cde94 Fix coding practice in Quaternion::UniformRandom 2016-05-20 13:19:52 +02:00
Joseph Mirabel
eb0cc2573a bug #823: add static method to Quaternion for uniform random rotations. 2016-05-20 13:15:40 +02:00
Gael Guennebaud
b6ed8244b4 bug #1201: optimize affine*vector products 2016-05-19 16:09:15 +02:00
Christoph Hertzberg
dacb469bc9 Enable and fix -Wdouble-conversion warnings 2016-05-05 13:35:45 +02:00
Gael Guennebaud
3fccef6f50 bug #537: fix compilation with Apples's compiler 2016-03-02 13:22:46 +01:00
Hauke Heibel
eeac46f980 bug #774: re-added comment referencing equations in the original paper 2016-02-11 19:38:37 +01:00
Gael Guennebaud
8cc9232b9a bug #774: fix a numerical issue producing unwanted reflections. 2016-02-11 15:32:56 +01:00
Gael Guennebaud
9c8f7dfe94 bug #1156: fix several function declarations whose arguments were passed by value instead of being passed by reference 2016-01-27 18:34:42 +01:00
Gael Guennebaud
8b9dc9f0df bug #1144: fix regression in x=y+A*x (aliasing), and move evaluator_traits::AssumeAliasing to evaluator_assume_aliasing. 2016-01-09 08:30:38 +01:00
Gael Guennebaud
8b0d1eb0f7 Fix numerous doxygen shortcomings, and workaround some clang -Wdocumentation warnings 2016-01-01 21:45:06 +01:00
Gael Guennebaud
29bb599e03 Fix numerous doxygen issues in auto-link generation 2015-12-30 16:04:24 +01:00
Gael Guennebaud
4549549992 Fix and clarify documentation of Transform wrt operator*(MatrixBase) 2015-12-08 16:21:49 +01:00
Gael Guennebaud
1562e13aba Add missing Rotation2D::operator=(Matrix2x2) 2015-12-03 22:25:26 +01:00
Gael Guennebaud
c5b86893e7 bug #1123: add missing documentation of angle() and axis() 2015-12-01 14:45:08 +01:00
Gael Guennebaud
6c02cbbb0f Fix matrix to quaternion (and angleaxis) conversion for matrix expression. 2015-12-01 09:45:56 +01:00
Sergiu Dotenco
85afb61417 use explicit Scalar types for AngleAxis initialization
(grafted from 89a222ce502483f8f0b02db9261445b7dff69760
)
2015-08-28 22:20:15 +02:00
Gael Guennebaud
75a60d3ac0 bug #1075: fix AlignedBox::sample for runtime dimension 2015-09-30 11:44:02 +02:00
Gael Guennebaud
ceafed519f Add support for permutation * homogenous 2015-09-28 16:56:11 +02:00
Gael Guennebaud
73a86cfcd3 Add EIGEN_QUATERNION_PLUGIN 2015-09-07 11:12:30 +02:00
Gael Guennebaud
aa768add0b Since there is no reason for evaluators to be nested by reference, let's remove the evaluator<>::nestedType indirection. 2015-09-02 22:10:39 +02:00
Gael Guennebaud
92b9f0e102 Cleaning pass on evaluators: remove the useless and error prone evaluator<>::type indirection. 2015-09-02 21:38:40 +02:00
Sergiu Dotenco
d4c24eb016 fixed Quaternion identity initialization for non-implicitly convertible types 2015-08-20 20:55: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
fa17358c4b Rotation2D: fix slerp to take the shortest path, and add convenient method to get the angle in [-pi,pi] or [0,pi] 2015-07-07 17:27:12 +02:00