Commit Graph

318 Commits

Author SHA1 Message Date
Benoit Jacob
a0cfe6ebdc remove double ; 2008-08-27 02:58:04 +00:00
Gael Guennebaud
083ffa8c41 #undef vector after including altivec.h 2008-08-27 00:09:58 +00:00
Benoit Jacob
12c6b45ae5 replace vector by __vector to prevent conflict with std::vector 2008-08-26 23:25:10 +00:00
Gael Guennebaud
63d3ef8204 * remove debug code commited by mistake in Assign
* keep going on the doc: added a short geometry tutorial
2008-08-26 23:07:33 +00:00
Gael Guennebaud
00a8d314c5 * move memory related stuff to util/Memory.h
* clean ugly doxygen inheritence of expressions
* keep improving the documentation... slowly !
2008-08-26 19:12:23 +00:00
Gael Guennebaud
8f9d30cb20 * patch from Konstantinos Margaritis: bugfix in Altivec version of ei_pdiv
and various cleaning in Altivec code. Altivec vectorization have been re-enabled
  in CoreDeclaration
* added copy constructors in non empty functors because I observed weird behavior with
  std::complex<>
2008-08-25 16:22:56 +00:00
Benoit Jacob
da674fa032 Shut up two bogus gcc 4.3 warnings 2008-08-25 03:13:14 +00:00
Benoit Jacob
5ac883b10a Fix a bug discovered in Avogadro: the AngleAxis*Matrix and the newer
AngleAxis*Vector products were wrong because they returned the product
_expression_
   toRotationMatrix()*other;
and toRotationMatrix() died before that expression would be later
evaluated. Here it would not have been practical to NestByValue as this
is a whole matrix. So, let them simply evaluate and return the result by
value.

The geometry.cpp unit-test only checked for compatibility between
various rotations, it didn't check the correctness of the rotations
themselves. That's why this bug escaped us. So, this commit checks that
the rotations produced by AngleAxis have all the expected properties.
Since the compatibility with the other rotations is already checked,
this should validate them as well.
2008-08-24 23:16:51 +00:00
Benoit Jacob
aa54d6bef0 arf, of course a meta-selector was required here 2008-08-24 21:36:14 +00:00
Benoit Jacob
124ec71c50 allow constructing Transform from small-matrix (like fromPosOrientScale
but with trivial Pos and Scale)
2008-08-24 21:25:04 +00:00
Benoit Jacob
bf31d81aac argh, gael you're more clever than i remembered. diagonal product is
optimized. so, i almost revert, just reordering to reduce # of
load/store.
2008-08-24 20:53:04 +00:00
Benoit Jacob
d3529e9c40 optimization: spare the 3x3 matrix product in
fromPositionOrientationScale
2008-08-24 20:50:18 +00:00
Benoit Jacob
6a36b5a6e0 add AngleAxis::operator*(const Vector3&) 2008-08-24 20:13:32 +00:00
Benoit Jacob
6b591d06c5 add data() methods to Transform 2008-08-24 20:02:20 +00:00
Benoit Jacob
b815b23e09 forgot to install Regression public header 2008-08-24 19:39:07 +00:00
Gael Guennebaud
854d6e8458 Documentation: fill the placeholders, add a custom CSS file,
add a reference to the tutorial in the main page.
2008-08-24 19:14:20 +00:00
Benoit Jacob
251ecc0ab9 Rename someOrthogonal to unitOrthogonal. Fix a bug in it, with dyn-size vectors of size <=3.
Update doc and test to reflect that it always returns a unit vector.
2008-08-24 17:31:03 +00:00
Gael Guennebaud
bf17467ce0 bugfix in Product and ei_L2_block_traits 2008-08-24 16:00:17 +00:00
Gael Guennebaud
440664cd5d temporary fix of the pèrevious commit 2008-08-24 15:27:05 +00:00
Gael Guennebaud
ba100998bf * split Meta.h to Meta.h (generic meta programming) and XprHelper.h (relates to eigen mechanism)
* added a meta.cpp unit test
* EIGEN_TUNE_FOR_L2_CACHE_SIZE now represents L2 block size in Bytes (whence the ei_meta_sqrt...)
* added a CustomizeEigen.dox page
* added a TOC to QuickStartGuide.dox
2008-08-24 15:15:32 +00:00
Gael Guennebaud
bfe86b8fc0 * add documentation of the cool (?) "print with format" feature
* move the ioformat.cpp test to a documentation example
* rename IoFormat => IOFormat
2008-08-23 19:41:00 +00:00
Gael Guennebaud
f2f48b6560 * remove LargeBit and related stuff
* replaced the Flags template parameter of Matrix by StorageOrder
  and move it back to the 4th position such that we don't have to
  worry about the two Max* template parameters
* extended EIGEN_USING_MATRIX_TYPEDEFS with the ei_* math functions
2008-08-23 17:11:44 +00:00
Gael Guennebaud
2120fed849 * bug fixes in: Dot, generalized eigen problem, singular matrix detetection in Cholesky
* fix all numerical instabilies in the unit tests, now all tests can be run 2000 times
  with almost zero failures.
2008-08-23 15:14:20 +00:00
Benoit Jacob
312013a089 compile fix for code like Vector3d::Random().x() 2008-08-23 02:19:03 +00:00
Gael Guennebaud
8509668466 bugfix from Timothy Hunter s/ei_div/ei_pdiv 2008-08-22 22:01:02 +00:00
Gael Guennebaud
e0f627a7db s/Affine/Linear, thanks to Thomas Vaughan 2008-08-22 17:54:37 +00:00
Gael Guennebaud
f0394edfa7 * bugfix in SolveTriangular found by Timothy Hunter (did not compiled for very small fixed size matrices)
* bugfix in Dot unroller
* added special random generator for the unit tests and reduced the tolerance threshold by an order of magnitude
  this fixes issues with sum.cpp but other tests still failed sometimes, this have to be carefully checked...
2008-08-22 17:48:36 +00:00
Gael Guennebaud
a95c1e190b patch from Konstantinos Margaritis: Altivec vectorization is resurrected ! 2008-08-22 13:19:35 +00:00
Gael Guennebaud
95db4e9841 added SparseSetter doc 2008-08-22 11:19:12 +00:00
Benoit Jacob
a814ebe180 fix a number of compiler errors and warnings with gcc 4.3. There was a missing
#include<algorithm> so I'm not sure how it compiled at all for you :)
2008-08-22 01:19:53 +00:00
Gael Guennebaud
db628c6ad7 Reimplement fitHyperplane such that the fit is done in a total LS sense
(use eigen decomposition).
Added optional feedback on the stability of the actual fit (think about fitting a 3D plane
on data lying on a line...)
2008-08-22 00:09:46 +00:00
Benoit Jacob
0998c51d1f - remove the ASM macro as in fact Gael had been removing all the remaining
asm("...") from the code while fixing MSVC compat (so your changes crossed
  one another).
- move the pragma warning to CoreDeclarations, it's the right place to do early
  platform checks.

CCMAIL:ps_ml@gmx.de
2008-08-21 21:07:24 +00:00
Gael Guennebaud
58061f5ffc extend sparse unit test and more bugfix, major todo: finilize the SparseSetter 2008-08-21 18:40:56 +00:00
Gael Guennebaud
60804c306d *patch by Daniel Gomez:
- bugfix in SparseMatrix
 - add a sparse unit test
* renamed Transform::affine => linear
2008-08-21 17:02:47 +00:00
Benoit Jacob
082e309d2a patch by Patrick Spendrin: fix MSVC compatibility 2008-08-21 16:17:51 +00:00
Gael Guennebaud
67813e01bf disable the vectorization of div for AltiVec 2008-08-21 14:03:17 +00:00
Gael Guennebaud
f729fc1d70 * Add the possibility to customize the output of matrices, e.g.:
IoFormat OctaveFmt(4, AlignCols, ", ", ";\n", "", "", "[", "]");
   cout << mat.format(OctaveFmt);
  The first "4" is the precision.
  Documentation missing.
* Some compilation fixes
2008-08-21 13:17:21 +00:00
Benoit Jacob
591d497b84 add resize() methods to Map, doing nothing but assertions.
This is useful in Krita where I call lu().solve() with a Map object
as result. As solve() resizes the result, this was needed.
2008-08-21 04:36:48 +00:00
Gael Guennebaud
fd681507dc Add a packetmath unit test, re-enable the comma-initializer unit test,
and bug fix in PacketMath/SSE
2008-08-20 20:08:38 +00:00
Benoit Jacob
ff8e98c974 Fix bugs in Sum.h, add unit-test 2008-08-20 16:43:28 +00:00
Gael Guennebaud
c501c7a4ef * Fix CMakeLists.txt issue with SVD
* Fix on stack memory allocation issues
2008-08-20 15:58:01 +00:00
Gael Guennebaud
752ec27293 minor bugfix found using gcc-4.0 2008-08-20 14:05:57 +00:00
Gael Guennebaud
8afaeb4ad5 doc fixes, and extended Basic Linear Algebra and Reductions sections 2008-08-20 13:07:46 +00:00
Benoit Jacob
c705c38a23 * it's \returns not \Returns
* add some explanations in the typedefs page
* expand a bit the new QuickStartGuide. Some placeholders (not a pb since
it's not even yet linked to from other pages). The point I want to make is
that it's super important to have fully compilable short programs (even
with compile instructions for the first one) not just small snippets, at
least at the beginning. Let's start with examples of compilable programs.
2008-08-20 04:34:04 +00:00
Gael Guennebaud
7aba51ce53 * Added .all() and .any() members to PartialRedux
* Bug fixes in euler angle snippet, Assign and MapBase
* Started a "quick start guide" (draft state)
2008-08-20 00:58:25 +00:00
Gael Guennebaud
c6674ab076 missing SVD header file 2008-08-19 20:18:46 +00:00
Gael Guennebaud
104f8fd36e Added a SVD module:
- the decompostion code has been adfapted from JAMA
 - handles non square matrices of size MxN with M>=N
 - does not work for complex matrices
 - includes a solver where the parts corresponding to zero singular values are set to zero
2008-08-19 17:52:04 +00:00
Benoit Jacob
54137f1ca7 * fix bug found by Boudewijn Rempt: no CMakeLists in arch/ subdir
* fix warning in SolveTriangular
2008-08-19 13:15:13 +00:00
Gael Guennebaud
a6d387a359 Various compilation fixes for MSVC 9. All tests compile but some
still fail at runtime in ei_aligned_free() (even without vectorization).
2008-08-19 11:06:40 +00:00
Benoit Jacob
9466e5f94e * doc improvements in Cwise and PartialRedux:
- 33 new snippets
  - unfuck doxygen output in Cwise (issues with function macros)
  - more see-also links from outside, making Cwise more discoverable
* rename matrixNorm() to operatorNorm(). There are many matrix norms
  (the L2 is another one) but only one is called the operator norm.
  Risk of confusion with keyword operator is not too scary after all.
2008-08-19 04:30:28 +00:00