Antonio Sánchez
6e4d5d4832
Add IWYU private pragmas to internal headers.
2023-08-21 16:25:22 +00:00
Erik Schultheis
421cbf0866
Replace Eigen type metaprogramming with corresponding std types and make use of alias templates
2022-03-16 16:43:40 +00:00
Tobias Schlüter
cd2ba9d03e
Add construct_at, destroy_at wrappers. Use throughout.
2022-03-08 20:43:22 +00:00
Rasmus Munk Larsen
d7d0bf832d
Issue an error in case of direct inclusion of internal headers.
2021-09-10 19:12:26 +00:00
Alexander Karatarakis
4ba872bd75
Avoid leading underscore followed by cap in template identifiers
2021-08-04 22:41:52 +00:00
Gael Guennebaud
ab615e4114
Save one extra temporary when assigning a sparse product to a row-major sparse matrix
2020-05-30 23:15:12 +02:00
luz.paz
e3912f5e63
MIsc. source and comment typos
...
Found using `codespell` and `grep` from downstream FreeCAD
2018-03-11 10:01:44 -04: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
klimpel
8b3fc31b55
compile fix (SFINAE variant apparently didn't work for all compilers) for the following compiler/platform:
...
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-46)
Copyright (C) 2006 Free Software Foundation, Inc.
2016-07-11 17:42: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
8456bbbadb
bug #1224 : fix regression in (dense*dense).sparseView() by specializing evaluator<SparseView<Product>> for sparse products only.
2016-05-18 16:53:28 +02:00
Gael Guennebaud
77ff3386b7
Refactoring of the cost model:
...
- Dynamic is now an invalid value
- introduce a HugeCost constant to be used for runtime-cost values or arbitrarily huge cost
- add sanity checks for cost values: must be >=0 and not too large
This change provides several benefits:
- it fixes shortcoming is some cost computation where the Dynamic case was not properly handled.
- it simplifies cost computation logic, and should avoid future similar shortcomings.
- it allows to distinguish between different level of dynamic/huge/infinite cost
- it should enable further simplifications in the computation of costs (save compilation time)
2015-10-28 11:42:14 +01:00
Gael Guennebaud
73f692d16b
Fix ambiguous instantiation
2015-10-27 11:01:37 +01:00
Gael Guennebaud
e6f8c5c325
Add support to directly evaluate the product of two sparse matrices within a dense matrix.
2015-10-26 18:20:00 +01: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
Gael Guennebaud
d44d432baa
Re-enable products with triangular views of sparse matrices: we simply have to treat them as a sparse matrix.
2014-10-06 16:11:26 +02: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
bae2e3327b
Call product_generic_impl by default, and remove lot of boilerplate code
2014-07-31 13:35:49 +02:00
Gael Guennebaud
3c63446507
Update copyright dates
2014-07-01 13:27:35 +02:00
Gael Guennebaud
746d2db6ed
Implement evaluators for sparse * sparse with auto pruning.
2014-07-01 13:18:56 +02:00
Gael Guennebaud
441f97b2df
Implement evaluators for sparse * sparse products
2014-07-01 11:50:20 +02:00
Gael Guennebaud
0b1430ae10
Fix propagation of index type
2014-02-13 23:58:28 +01: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
9629ba361a
bug #482 : pass scalar by const ref - pass on the sparse module
...
(also fix a compilation issue due to previous pass)
2012-06-28 21:01:02 +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
fe85b7ebc6
fix several const qualifier issues: double ones, meaningless ones, some missing ones, etc.
...
(note that const qualifiers are set by internall::nested)
2012-02-03 23:18:26 +01:00
Gael Guennebaud
e759086dcd
improve documentation of some sparse related classes
2011-12-02 19:02:49 +01:00
Gael Guennebaud
53fa851724
move sparse solvers from unsupported/ to main Eigen/ and remove the "not stable yet" warning
2011-11-12 14:11:27 +01:00