Gael Guennebaud
7718a8ed83
slight optimization of SSE base integer mul (thanks to Rohit Garg)
2009-03-08 10:14:07 +00:00
Jure Repinc
f9790a649c
Install the newly added eigen2/Eigen/src/Geometry/arch/Geometry_SSE.h
2009-03-08 06:21:21 +00:00
Gael Guennebaud
e4f64ce098
add optimized quaternion * quaternion product specialization for
...
float/SSE using code from Rohit Garg
2009-03-07 13:52:44 +00:00
Gael Guennebaud
6f95270ede
significantly reduce the default stack allocation limit which was much
...
too high
2009-03-06 16:52:43 +00:00
Gael Guennebaud
2c78ca62a6
patch from Stjepan Rajko (MSVC fix in RotationBase)
2009-03-06 11:45:39 +00:00
Andrew Coles
093e3cd5b5
Commented out duplicate definition of TransformTraits - was causing
...
compile-time errors.
2009-03-05 22:35:06 +00:00
Gael Guennebaud
fa9f7708d4
add efficient matrix product specializations for Homogeneous
2009-03-05 16:40:56 +00:00
Gael Guennebaud
31332fca0b
remove bad #include of SelfadjointRank2Update.h
2009-03-05 10:29:20 +00:00
Gael Guennebaud
0be89a4796
big addons:
...
* add Homogeneous expression for vector and set of vectors (aka matrix)
=> the next step will be to overload operator*
* add homogeneous normalization (again for vector and set of vectors)
* add a Replicate expression (with uni-directional replication
facilities)
=> for all of them I'll add examples once we agree on the API
* fix gcc-4.4 warnings
* rename reverse.cpp array_reverse.cpp
2009-03-05 10:25:22 +00:00
Gael Guennebaud
6a26506341
add ReturnByValue pseudo expression for in-place evaluation with a
...
return-by-value API style (will soon use it for the transform products)
2009-03-04 13:00:00 +00:00
Gael Guennebaud
3288e9e168
add much faster versions of unaligned stores (and slightly faster
...
unaligned loads)
2009-03-03 14:01:30 +00:00
Gael Guennebaud
c4601314be
cleaned Tridiagonalization impl, with improved performance
2009-03-02 15:07:39 +00:00
Gael Guennebaud
ed134a0ce5
performance improvement: rewrite of the matrix-matrix product following
...
Goto's paper => x1.4 speedup with more consistent perf results
2009-03-02 13:15:15 +00:00
Gael Guennebaud
8ed186b9ab
improve WIP new matrix product
2009-02-27 17:18:52 +00:00
Gael Guennebaud
170128770a
compilation fix + test orho methods for complex
2009-02-26 10:09:23 +00:00
Gael Guennebaud
91af389a9a
fix unitOrthogonal() for size > 3
2009-02-25 09:23:09 +00:00
Laurent Montel
2d6d14a3d3
Add COMPONENT Devel
2009-02-23 07:50:56 +00:00
Laurent Montel
8e7c4df0db
Fix install header
2009-02-22 10:28:31 +00:00
Gael Guennebaud
de014efdaf
* split CacheFriendlyProduct into multiple smaller files
...
* add an efficient selfadjoint * vector implementation (= blas symv)
perf are inbetween MKL and GOTO
=> the interface is still missing (have to be rethougth)
2009-02-21 20:20:38 +00:00
Gael Guennebaud
3d86dcf473
oops, got confused by the preprocessor directives around
...
posix_memalign...
2009-02-21 16:35:57 +00:00
Gael Guennebaud
7c4f9ecf0c
fix posix_memalign return value warning
2009-02-21 16:23:18 +00:00
Daniel Gomez Ferro
032880074e
Added new product implementation.
...
Just works for square, power of 2 matrices of floats.
2009-02-20 22:23:25 +00:00
Gael Guennebaud
e2ee7a6a58
increase version number for step
2009-02-19 15:46:10 +00:00
Gael Guennebaud
752d95c20e
eventually c++ does not provide any optimized pow(int,int) function,
...
so here you go :) (should also fix Timothy's troubles)
2009-02-18 18:24:31 +00:00
Gael Guennebaud
e6f1104b57
* fix Quaternion::setFromTwoVectors (thanks to "benv" from the forum)
...
* extend PartialRedux::cross() to any matrix sizes with automatic
vectorization when possible
* unit tests: add "geo_" prefix to all unit tests related to the
geometry module and start splitting the big "geometry.cpp" tests to
multiple smaller ones (also include new tests)
2009-02-17 09:53:05 +00:00
Gael Guennebaud
67b4fab4e3
fix assertion issue in slice vectorization
2009-02-16 10:17:21 +00:00
Konstantinos A. Margaritis
349557db9a
no reason for 3 vec_mins, 2 are enough apparently in ei_predux_min
2009-02-12 22:03:30 +00:00
Konstantinos A. Margaritis
ad2bf14dbb
modified ei_predux_min/max to actually use altivec instructions
2009-02-12 21:58:44 +00:00
Gael Guennebaud
3b12f48aa3
compilation fix for SuperLU 3.1
2009-02-12 17:50:51 +00:00
Gael Guennebaud
20a8bb96eb
fix m = m*m with m sparse (gug found by Frederik Heinz)
2009-02-12 15:57:13 +00:00
Gael Guennebaud
59a1ed0932
fix bug in MapBase found by myguel
2009-02-12 15:29:20 +00:00
Gael Guennebaud
51c991af45
* exit Sum.h, exit Prod.h, welcome vectorization of redux() !
...
* add vectorization for minCoeff and maxCoeff
2009-02-12 15:18:59 +00:00
Gael Guennebaud
dc97d483fd
update of the Array module doc
2009-02-12 07:55:35 +00:00
Gael Guennebaud
deb6254702
some ICC fixes
2009-02-12 07:55:03 +00:00
Gael Guennebaud
7954f7709a
add ei_predux_mul for AltiVec
2009-02-10 18:26:59 +00:00
Gael Guennebaud
cbbc6d940b
* add ei_predux_mul internal function
...
* apply Ricard Marxer's prod() patch with fixes for the vectorized path
2009-02-10 18:06:05 +00:00
Gael Guennebaud
a0cc5fba0a
fix ICC internal compilation error
2009-02-10 14:15:32 +00:00
Gael Guennebaud
e75bef9523
various minor fixes in Sparse module
2009-02-10 10:00:00 +00:00
Gael Guennebaud
169696a078
fix doxygen \ingroup for the array module
2009-02-09 10:13:06 +00:00
Gael Guennebaud
a9688f0b71
- add diagonal * sparse product as an expression
...
- split sparse_basic unit test
- various fixes in sparse module
2009-02-09 09:59:30 +00:00
Gael Guennebaud
e0be020622
add DiagonalMatrix setZero and resize functions
2009-02-09 09:55:54 +00:00
Gael Guennebaud
666ade0c93
add "remap" snippet using placement new
2009-02-09 09:54:48 +00:00
Konstantinos A. Margaritis
15e40b1099
fixed preserve_mask definition for AltiVec (needed __vector keyword)
2009-02-08 18:43:57 +00:00
Konstantinos A. Margaritis
505bdbb9ef
should be __powerpc__ instead of __ppc__
2009-02-08 18:22:34 +00:00
Gael Guennebaud
d8b7283a98
remove remaining debug stuff in Reverse.h
2009-02-08 12:56:47 +00:00
Vincenzo Di Massa
a385de080d
fix build
2009-02-07 16:14:46 +00:00
Gael Guennebaud
6c4b6c2da8
forgot to commit the deletion of StdVector directory
2009-02-07 15:47:13 +00:00
Gael Guennebaud
17fd619430
more fixes in StdVector, sorry for the noise
2009-02-07 12:51:58 +00:00
Gael Guennebaud
365ec0744c
disable vector::resize() workaround for gcc < 4.1 (they already use a const
...
reference)
2009-02-07 12:46:04 +00:00
Gael Guennebaud
671398372b
arf... s/_MSVC_VER/_MSC_VER
2009-02-07 11:49:33 +00:00
Gael Guennebaud
4dd2efa113
little fix in new StdVector
2009-02-07 11:30:19 +00:00
Gael Guennebaud
3009d79a1f
* allow Matrix to be resized to 0 (solve a lot of troubles with
...
some containers)
* new workaround for std::vector which is supposed to work for any
classes having EIGEN_MAKE_ALIGNED_OPERATOR_NEW as discussed on ML
2009-02-07 11:16:15 +00:00
Gael Guennebaud
19b035ee11
s/cholesky/llt in precompiled lib and BTL
2009-02-06 14:01:01 +00:00
Gael Guennebaud
cc90495e30
add bench_reverse, draft of a reverse vectorization for AltiVec, make
...
global Scaling function static
2009-02-06 13:28:55 +00:00
Gael Guennebaud
f5d96df800
Add vectorization of Reverse (was more tricky than I thought) and
...
simplify the index based functions
2009-02-06 12:40:38 +00:00
Gael Guennebaud
4dc4ab3abb
Reverse::coeff*(int) functions are for vector only
2009-02-06 09:13:04 +00:00
Gael Guennebaud
6fbca94803
apply Ricard patch for Reverse with minor modifications
2009-02-06 09:01:50 +00:00
Gael Guennebaud
a4487ef198
add snippet for sub/super diagonal
...
fix a few doc issues
2009-02-05 21:19:40 +00:00
Gael Guennebaud
e80f0b6c4e
update doc of DiagonalCoeffs
2009-02-05 18:39:23 +00:00
Gael Guennebaud
910b387438
Add sub/super-diagonal expression (read/write) as a trivial extension of
...
DiagonalCoeffs. The current API is simply:
m.diagonal<1>() => 1st super diagonal
m.diagonal<-2>() => the 2nd sub diagonal
I'll add a code snippet once we agree on this API.
2009-02-05 18:37:21 +00:00
Gael Guennebaud
9637af5ecf
undo an unecessary change in cache-friendly product made for MSVC
2009-02-05 11:37:57 +00:00
Gael Guennebaud
da45184635
add custom FindBLAS FindLAPACK working for c++ compiler
...
fix issues in Cholmod/Taucs supports
2009-02-05 09:36:52 +00:00
Gael Guennebaud
1119f846cf
fix various Taucs and Cholmod issues (they have not been tested for a while)
2009-02-04 22:14:09 +00:00
Gael Guennebaud
41f80b26cb
bugfix in LDLt for size==1
2009-02-04 20:20:34 +00:00
Benoit Jacob
93a089adc8
disable alignment altogether outside of the platforms which potentially have SSE or AltiVec
...
This should remove most portability issues to other platforms where data alignment issues (including
overloading operator new and new[]) can be tricky, and where data alignment is not needed in the first place.
2009-02-04 16:53:03 +00:00
Gael Guennebaud
95db32fcdc
setup the unsupported directory structure.
...
The unsupported module documentation is automatically generated in:
build/doc/unsupported/
with bidirectional cross references.
I leave a class Foo in AdolcForward module to illustrate the
cross-reference behavior. I will remove it in the next commit.
2009-02-04 15:37:00 +00:00
Keir Mierle
b9a82be727
Add full pivoting to LDLT decomposition.
2009-02-03 17:50:35 +00:00
Keir Mierle
b4777379d4
Add Matrix::resizeLike(other) convenience function and test.
2009-02-03 01:43:59 +00:00
Benoit Jacob
bc9a276b78
call it "Eigen 2.0.50-unstable" to make things clear, and update EIGEN_MINOR_VERSION to 50
2009-02-02 17:15:01 +00:00
Benoit Jacob
61e45ed500
* label Cholesky and solveTriangular.* as experimental
...
* improve Experimental.dox
* update urls from /api/ to /dox/
2009-02-02 14:21:35 +00:00
Benoit Jacob
f3d5ba0c1f
the BSD's don't have aligned malloc after all
2009-02-02 13:22:19 +00:00
Benoit Jacob
37cceeeaca
add missing inline keywords
2009-01-30 23:08:47 +00:00
Gael Guennebaud
82e70fbcae
fix duplicated geometry module in the doc
2009-01-29 23:10:16 +00:00
Gael Guennebaud
13d0a310fd
fix MSVC internal compilation error
2009-01-29 22:49:24 +00:00
Gael Guennebaud
8e0ec3c62b
reduce epsilon in QR
2009-01-29 16:11:46 +00:00
Gael Guennebaud
cf0857c44d
fix MSVC stupid warnings
2009-01-29 09:45:25 +00:00
Gael Guennebaud
1752a3a677
more MSVC fixes, and more code factorization in Geometry module
2009-01-29 09:36:48 +00:00
Gael Guennebaud
36c8a64923
add MatrixBase::stableNorm() avoiding over/under-flow
...
using it in QR reduced the error of Keir test from 1e-12 to 1e-24 but
that's much more expensive !
2009-01-28 22:11:56 +00:00
Gael Guennebaud
42b237b83a
* make sum and redux honor EvalBeforeNestingBit too
...
* fix MSVC issues (hopefully)
2009-01-28 21:09:08 +00:00
Gael Guennebaud
cc6159743d
make dot() honor EvalBeforeNestingBit
2009-01-28 20:53:27 +00:00
Gael Guennebaud
9b594ab0fb
fix overflow in sparse product
2009-01-28 18:21:38 +00:00
Benoit Jacob
9bc44094c5
add EIGEN_NO_AUTOMATIC_RESIZING
...
if defined, already initialized matrices won't be automatically resized in assignments
uninitialized matrices may still be initialized
2009-01-28 16:44:03 +00:00
Gael Guennebaud
1b194193ef
Big change in DiagonalMatrix and Geometry/Scaling:
...
* previous DiagonalMatrix expression is now DiagonalMatrixWrapper
* DiagonalMatrix class is now for storage
* add the DiagonalMatrixBase class to factorize code of the
two previous classes
* remove Scaling class (it is now a global function)
* add UniformScaling helper class
(don't use it directly, use the Scaling function)
* add the Scaling global function to simplify the creation
of scaling objects
There is still a lot to do, in particular about DiagonalProduct for which
the goal is to get rid of the "if()" in the coeff() function. At least
it is not worse than before ! Also need to uptade the tutorial and add more doc.
2009-01-28 16:26:06 +00:00
Gael Guennebaud
da555585e2
Patch from Frank fixing stupid MSVC internal crash
2009-01-28 12:52:26 +00:00
Gael Guennebaud
22bfc77124
move EIGEN_DEPRECATED to the begining of the function (pb with MSVC)
2009-01-28 12:48:19 +00:00
Gael Guennebaud
0f15a8d829
QR: add isInjective(), isSurjective(),
...
mark isFullRank() deprecated,
add solve() (mix of Keir's patch and LU::solve())
=> there is big problem with complex which are not working
2009-01-28 09:45:53 +00:00
Gael Guennebaud
cf89d9371a
LLT: makes the non positive definite test less strict, but we still need
...
something better.
2009-01-27 23:01:53 +00:00
Gael Guennebaud
8ce4503494
add support for read/write sub sets of inner vectors (sparse module)
2009-01-27 22:48:17 +00:00
Gael Guennebaud
4ac8cabf8a
fix my previous commit with EIGEN_EMPTY macro bug
2009-01-27 19:08:20 +00:00
Gael Guennebaud
d700343632
fix "empty macro arguments are undefined in ISO C90 and ISO C++98"
...
warning found by gcc-svn
2009-01-27 17:40:14 +00:00
Benoit Jacob
f6aa60bcf3
centralize those static asserts more upstream, reduces duplication and ensures they can't be bypassed (e.g.
...
until now it was possible to bypass the static assert on sizes)
2009-01-27 15:40:05 +00:00
Benoit Jacob
8d236e74a1
add a missing static assertion on the scalar types
2009-01-27 15:29:07 +00:00
Benoit Jacob
046a84c0ef
fix doc for norm() and squaredNorm(): these are not only for vectors
2009-01-27 14:05:20 +00:00
Benoit Jacob
062d6bd47a
documentation update/improvement
2009-01-26 16:22:40 +00:00
Benoit Jacob
b05c5dd1be
compute the rank on the fly rather than at the end, and stop early
...
in the case of non-full rank (so big optimization in case the rank is low)
2009-01-26 16:14:20 +00:00
Gael Guennebaud
9ea1050281
fix MatrixNase::fillrand bug
2009-01-26 14:01:16 +00:00
Benoit Jacob
2776a3197b
make these functions inline, thanks to Mek
2009-01-26 13:59:52 +00:00
Benoit Jacob
a79deafc6d
* mark Geometry as experimental
...
* install QtAlignedMalloc
* finish the renaming Regression->LeastSquares
* install LeastSquares directory (!!!)
* misc dox fixes
2009-01-26 13:53:43 +00:00
Benoit Jacob
00d7f8e567
* solveTriangularInPlace(): take a const ref and const_cast it, to allow passing temporary xprs.
...
* improvements, simplifications in LU::solve()
* remove remnant of old norm2()
2009-01-25 23:46:51 +00:00
Benoit Jacob
414ee1db4b
Optimization in LU::solve: when rows<=cols, no need to compute the L matrix
...
Remove matrixL() and matrixU() methods: they were tricky, returning a Part,
and matrixL() was useless for non-square LU. Also they were untested. This is
the occasion to simplify the docs (class_LU.cpp) removing the most confusing part.
I think that it's better to let the user do his own cooking with Part's.
2009-01-25 16:33:06 +00:00