Commit Graph

1684 Commits

Author SHA1 Message Date
Jitse Niesen
7a43a4408b Replace local variables by member variables in compute() methods.
This is to avoid dynamic memory allocations in the compute() methods of
ComplexEigenSolver, EigenSolver, and SelfAdjointEigenSolver where possible.
As a result, Tridiagonalization::decomposeInPlace() is no longer used.
Biggest remaining issue is the allocation in HouseholderSequence::evalTo().
2010-05-24 17:43:06 +01:00
Jitse Niesen
68820fd4e8 Use ReturnByValue mechanism for HessenbergDecomposition::matrixH(). 2010-05-24 17:36:13 +01:00
Jitse Niesen
eb3ca68684 Change return type of matrixH() method to HouseholderSequence.
This method is a member of Tridiagonalization and HessenbergDecomposition.
2010-05-24 17:35:54 +01:00
Thomas Capricelli
76dd0e5314 fix some warnings 2010-05-22 19:17:04 +02:00
Thomas Capricelli
79e9e3f24c erm.. use EIGEN_ONLY_USED_FOR_DEBUG() as it already exists. 2010-05-21 18:13:59 +02:00
Thomas Capricelli
aadea5ae56 fix a warning 2010-05-21 02:13:16 +02:00
Thomas Capricelli
c1d005e976 introduce a new macro EIGEN_ARG_UNUSED(arg) and use it in some places to
silent some warnings (from clang)
2010-05-21 02:05:25 +02:00
Thomas Capricelli
742bbdfa57 clang/llvm is now good enough. I can compile a project using those (one of
the binary segfaults though, and i think it's related..)
2010-05-21 02:03:43 +02:00
Thomas Capricelli
4daba0750e fix some warnings with clang 2010-05-21 01:46:17 +02:00
Thomas Capricelli
2ab446695b fix some compilation issues with clang (and hopefully bring eigen more
close to std ?)
2010-05-21 01:39:33 +02:00
Thomas Capricelli
17d080edf2 clang shocks on this.
According to people on #llvm, this is indeed not allowed by c++ standard:

[01:33] <coppro> what good would mutable do on a reference?
[01:33] <dgregor> orzel: gcc is wrong to allow "mutable" on references
[01:33] <coppro> just remove mutable; it won't damage the code at all
[01:34] <dgregor> "The mutable specifier can be applied only to names of
class data members (9.2) and cannot be applied to
[01:34] <dgregor> names declared const or static, and cannot be applied to
reference members."
[01:34] <coppro> constness is not passed from an object to the referents of
its members anyways
2010-05-21 01:37:48 +02:00
Thomas Capricelli
b9bcd93ddc fix a compilation pb with clang (it's actually surprising gcc did not complain) 2010-05-20 03:53:09 +02:00
Hauke Heibel
39edf8e2bf I was not really aware of the implications on fixed size types when the strong inlining is not present. We really need it on MSVC! 2010-05-19 18:57:38 +02:00
Gael Guennebaud
05910b7996 merge 2010-05-19 16:51:07 +02:00
Gael Guennebaud
188171b991 merge 2010-05-19 16:49:56 +02:00
Gael Guennebaud
64cbd45266 minor chnages in Taucs and Cholmod backends 2010-05-19 16:49:05 +02:00
Hauke Heibel
6c18246a80 DenseBase is implemented as a class, not a struct. 2010-05-19 16:44:28 +02:00
Gael Guennebaud
2b6153d3ed simplify inner product 2010-05-19 16:37:17 +02:00
Gael Guennebaud
bf09fe55ed fix selfadjoint to dense 2010-05-19 16:35:34 +02:00
Hauke Heibel
f0283c13e8 Applied tiny Qt related fixes. 2010-05-19 16:32:47 +02:00
Benoit Jacob
1c04484a01 bug fix, since the last storage order changes, this InnerSize calculation was wrong 2010-05-18 08:24:06 -04:00
Benoit Jacob
5250c4395c compilation fix: const T ---> typename ei_makeconst<T>::type
(error was appearing when building tests with alignmnet disabled)

What is this stuff still doing in MatrixBase.h? Shouldn't it move to DenseBase.h? How are Array blocks compiling?
2010-05-18 08:19:23 -04:00
Gael Guennebaud
cf6d3162cc cache outer size in Block => x1.5 speed up for a.block() = b.block() 2010-05-17 16:54:17 +02:00
Gael Guennebaud
0f3bcf853f fix mixing types in inner product 2010-05-14 08:55:56 +02:00
Gael Guennebaud
42a1c983c1 fix bug in sliced redux 2010-05-13 23:22:18 +02:00
Gael Guennebaud
c55761e015 make inner product return a 1x1 matrix 2010-05-12 18:11:05 +02:00
Benoit Jacob
82d898083f fix compilation error thanks to test case by Trevor Irons, and expand unit test 2010-05-09 13:20:46 -04:00
Benoit Jacob
6624b93d67 add important comment and move stride helpers to DenseCoeffsBase.h 2010-05-09 09:41:54 -04:00
Cyrille Berger
8f076f6817 fix installation of global headers in case the src path contains 'src' 2010-05-08 17:55:55 -04:00
Benoit Jacob
0928c40f68 rename Coeffs.h -> DenseCoeffsBase.h 2010-05-08 16:02:13 -04:00
Benoit Jacob
7cbb84b046 move the strides API to DenseCoeffsBase,
and various fixes to make stuff compile after my big changes
2010-05-08 16:00:05 -04:00
Benoit Jacob
0e2a480466 use CoeffReturnType 2010-05-08 15:58:27 -04:00
Benoit Jacob
eda2795f51 use modern ei_first_aligned function, dont try compiling coeffRef() on rvalue expressions. 2010-05-08 15:57:56 -04:00
Benoit Jacob
65bd1652b1 let Diagonal have the DirectAccessBit, using an inner stride 2010-05-08 14:19:04 -04:00
Benoit Jacob
bfdc1c4973 introduce DenseCoeffsBase: this is where the coeff / coeffRef / etc... methods go.
Rationale: coeffRef() methods should only exist when we have DirectAccess. So a natural thing to do would have been to use enable_if, but since there are many methods it made more sense to do the "enable_if" for the whole group by introducing a new class. And that also that the benefit of not changing method prototypes.
2010-05-08 13:45:31 -04:00
Benoit Jacob
d03779f75f fix CwiseUnaryView: it shouldn't have the AlignedBit, but it should have the DirectAccessBit and corresponding strides API. 2010-05-08 13:42:41 -04:00
Jitse Niesen
2d74f1ac92 Document SelfAdjointEigenSolver and add examples. 2010-05-04 17:11:32 +01:00
Hauke Heibel
6ea6276f20 Quiet MSVC. 2010-05-04 14:06:41 +02:00
Jitse Niesen
38021b08c1 Merge. 2010-05-02 21:51:27 +01:00
Jitse Niesen
afed0ef90d Document Tridiagonalization class, remove unused types. 2010-05-01 17:52:16 +01:00
Benoit Jacob
8f249e8b54 fix compilation: const (T&) != const T& , use ei_makeconst 2010-04-30 14:28:35 -04:00
Benoit Jacob
cf4f90ccea fix #116 and remove debug cout's 2010-04-30 11:58:17 -04:00
Benoit Jacob
38facbd55b kill the LeastSquares module.
I didn't even put it in Eigen2Support because it requires several other modules. But if you want we can always create a new module, Eigen2Support_LeastSquares...
2010-04-29 10:40:52 -04:00
Benoit Jacob
5d63d2cc4b * kill the retval typedefs, instead introduce ei_xxx_retval which does the job automatically in 99% cases and can be specialized
* add real/imag/abs2 global functions for Array
* document ei_global_math_functions_filtering_base
* improve unit tests
2010-04-28 22:42:34 -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
Jitse Niesen
d9c1224133 Simplify computation of eigenvectors in EigenSolver.
* reduce scope of declarations
* use that low = 0 and high = size-1
* rename some variables
* rename hqr2_step2() to computeEigenvectors()
* exploit that ei_isMuchSmallerThan takes absolute value of arguments
2010-04-26 17:43:16 +01:00
Jitse Niesen
024995dbca Use topRows() and rightCols() in ComplexSchur and RealSchur. 2010-04-26 16:59:18 +01:00
Carlos Becker
34b3cdb82c Added EIGEN_DONT_PARALLELIZE preprocessor directive 2010-04-26 17:08:54 +02:00
Hauke Heibel
bf71b466e9 Removed ambiguity between Map and Matrix Options template parameter. 2010-04-26 16:59:04 +02:00
Hauke Heibel
18c70b12d7 Fixed a warning. 2010-04-26 13:31:16 +02:00