40 Commits

Author SHA1 Message Date
luz.paz
e3912f5e63 MIsc. source and comment typos
Found using `codespell` and `grep` from downstream FreeCAD
2018-03-11 10:01:44 -04:00
Benoit Steiner
ea4e65bf41 Fixed compilation with cuda_clang. 2017-09-07 09:13:52 +00:00
Gael Guennebaud
687bedfcad Make NoAlias and JacobiRotation compatible with CUDA. 2017-08-17 11:51:22 +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
Gael Guennebaud
8b0d1eb0f7 Fix numerous doxygen shortcomings, and workaround some clang -Wdocumentation warnings 2016-01-01 21:45:06 +01:00
Christoph Hertzberg
36448c9e28 Make constructors explicit if they could lead to unintended implicit conversion 2014-09-23 14:28:23 +02:00
Gael Guennebaud
0ca43f7e9a Remove deprecated code not used by evaluators 2014-09-18 15:15:27 +02:00
Gael Guennebaud
8cfb138e73 Finally, the simplest remains to deffer resizing at the latest 2014-02-18 13:31:44 +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
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
230f5c3aa9 Evaluator: introduce the main Assignment class, add call_assignment to bypass NoAlias and AssumeAliasing, and some bits of cleaning 2013-11-25 15:20:31 +01:00
Gael Guennebaud
2f593ee67c merge with main branch 2013-07-17 13:21:35 +02:00
Gael Guennebaud
43bb942365 Add missing support for x.noalias() = ReturnByValue<...> 2013-05-13 10:39:50 +02:00
Gael Guennebaud
5adcc6c7b4 Add support for NVCC5: most of the Core and part of LU are callable from CUDA code.
Still a lot to do.
2013-02-07 19:06:14 +01:00
Chen-Pang He
d387dfa9dc Remove unnecessary code. lazyAssign seems to fix all (noalias, initialization, etc.) 2012-09-24 23:36:19 +08:00
Chen-Pang He
963794b04a Eliminate unnecessary evaluations 2012-09-23 00:20:19 +08:00
Chen-Pang He
446d14f6ad Implement matrix power-matrix product again 2012-09-22 03:26:00 +08:00
Benoit Jacob
69124cfca2 Automatic relicensing to MPL2 using Keirs script. Manual fixup follows. 2012-07-13 14:42:47 -04:00
Jitse Niesen
c1eb820e50 Implement interface for NoAlias assignments.
* Rename the old copy_using_evaluators to noalias_copy_using_evaluators.
* Write a new copy_using_evaluators which strips NoAlias expression, if present,
  and calls noalias_copy_using_evaluators; in future, it will also take care of
  aliasing in products.
* Add expression() getter to NoAlias.
2012-06-29 13:24:04 +01:00
Jitse Niesen
3c412183b2 Get rid of include directives inside namespace blocks (bug #339). 2012-04-15 11:06:28 +01:00
Hauke Heibel
c738cd56eb Renamed cleantype to remove_all since it is close to remove_{const|pointer|reference}. 2010-10-26 16:47:01 +02:00
Benoit Jacob
4716040703 bug #86 : use internal:: namespace instead of ei_ prefix 2010-10-25 10:15:22 -04:00
Gael Guennebaud
9bb75937cc fix += return by value like operations 2010-09-06 11:51:42 +02:00
Gael Guennebaud
62eb4dc99b noalias was wrongly skipping automatic transposition 2010-09-02 19:18:34 +02:00
Jitse Niesen
49747fa4a9 Various documentation improvements.
* Add short documentation for Array class
* Put all classes explicitly in Core module (where applicable)
* Section on Modules in Quick Reference Guide
* Put Page 7 after Page 6 in Contents :)
2010-07-06 13:10:08 +01:00
Gael Guennebaud
28e64b0da3 email change 2010-06-24 23:21:58 +02:00
Benoit Jacob
3e95609cd4 Backed out changeset 641d968a9a7ed57a3b8a3f45dea43c5ee6717f97 2010-06-01 09:01:39 -04:00
Benoit Jacob
641d968a9a * Make ReturnByValue have the EvalBeforeAssigningBit and explicitly
enforce this mechanism (otherwise ReturnByValue bypasses it).
 (use .noalias() to get the old behavior.)
* Remove a hack in Inverse, futile optimization for 2x2 expressions.
2010-05-30 13:43:08 -04:00
Gael Guennebaud
1cb59e4781 fix nesting lazy prod by ref 2010-02-09 11:27:30 +01:00
Gael Guennebaud
5686eca7b1 * fix multiple temporary copies for coeff based products
* introduce a lazy product version of the coefficient based implementation
  => flagged is not used anymore
  => small outer product are now lazy by default (aliasing is really unlikely for outer products)
2010-02-09 11:05:39 +01:00
Gael Guennebaud
0398e21198 s/UnrolledProduct/CoeffBasedProduct 2010-02-09 10:02:26 +01:00
Gael Guennebaud
6f3f857897 make noalias works for coefficient based products 2010-02-05 23:44:24 +01:00
Gael Guennebaud
eaaba30cac merge with default branch 2009-12-22 22:51:08 +01:00
Hauke Heibel
832045d363 Warning 4512 (assignment operators could not be generated) is now simply disabled.
All unimplemented assignment operators have been removed.
2009-12-14 10:32:43 +01:00
Gael Guennebaud
1e62e0b0d8 more ET refactoring:
* extend Cwise for multiple storage base class
* a lot of cleaning in the Sparse module
2009-11-17 16:04:19 +01:00
Hauke Heibel
3c74d6b7d4 Added private, non-implemented assignment operators to functions that don't need them (fixes VC warning on /W4). 2009-09-27 17:03:02 +02:00
Gael Guennebaud
737bed19c1 make HouseholderQR uses the Householder module 2009-08-16 19:22:15 +02:00
Gael Guennebaud
fc9480cbb3 bugfix in compute_matrix_flags, optimization in LU,
improve doc, and workaround aliasing detection in MatrixBase_eval snippet
(not very nice but I don't know how to do it in a better way)
2009-08-16 10:55:10 +02:00
Gael Guennebaud
50c703f0c7 As proposed on the list:
- rename EvalBeforeAssignBit to MayAliasBit
- make .lazy() remove the MayAliasBit only, and mark it as deprecated
- add a NoAlias pseudo expression, and MatrixBase::noalias() function
Todo:
- we have to decide whether += and -= assume no aliasing by default ?
- once we agree on the API: update the Sparse module and the unit tests respectively.
2009-08-15 18:35:51 +02:00