Commit Graph

77 Commits (d5c6f62387c14ba37889746ee6db07d05017f763)

Author SHA1 Message Date
Kai Ni d5c6f62387 massive check in for using spqr_front 2010-07-04 23:50:21 +00:00
Kai Ni 1547597ba4 add separate flags for lapack 2010-06-30 17:23:58 +00:00
Kai Ni 70adcb26c9 the lapack version of householder 2010-06-30 15:57:12 +00:00
Kai Ni e6e93475cf added sizeOfA 2010-05-26 08:05:31 +00:00
Richard Roberts 3b06e6401a Fixed small typo when debug mode is on 2010-05-22 18:55:45 +00:00
Alex Cunningham e8979dafad Renabled BLAS using ATLAS for Linux, fixed a variety of annoying warnings 2010-05-21 17:59:26 +00:00
Alex Cunningham bb654a73ac solve_ldl() now works and is a real function 2010-04-22 23:53:36 +00:00
Alex Cunningham 25bd1c840f Added Tim Davis' LDL library to use for solving quadratic programming problem. Currently, code compiles and executes some sample code in a test for Matrix. Also fixed some small issues with colamd. 2010-04-22 22:17:08 +00:00
Kai Ni 41c77ef421 remove column singletons in the factor graph 2010-04-03 03:36:10 +00:00
Kai Ni 94395249fb add stack_matrices to prevent the name conflict with class std::stack 2010-04-02 00:04:11 +00:00
Kai Ni b895760404 reenable veclib include path 2010-03-17 18:03:54 +00:00
Alex Cunningham 1f6990635c removed gsl code, fixed flags for inclusion of blas 2010-03-17 13:23:01 +00:00
Kai Ni d5262135f4 1. to link with mac veclib, the compiler needs -DYA_BLAS, I changed matrix.cpp to handle both YA_BLAS and the linux's CBLAS flag
2. so the current plan is that linux just enables USE_BLAS_LINUX in configure.ac, and macos enables USE_BLAS_MACOS. Those two should be independent given USE_BLAS passed by the user when calling configure.
2010-03-16 21:16:36 +00:00
Alex Cunningham 276c027ef3 Added mechanism to check for blas functionality. 2010-03-16 13:06:24 +00:00
Alex Cunningham a1273a91fc Integrated blas into gtsam using autotools 2010-03-15 18:17:43 +00:00
Frank Dellaert 67fb7fa9ff in-place house vector (was about 10% of all mallocs in Urban) 2010-03-11 15:04:31 +00:00
Richard Roberts 74f8102d29 Fixed warnings 2010-03-08 14:06:07 +00:00
Frank Dellaert c62ebe3ea8 exponential map approximation 2010-03-02 02:24:38 +00:00
Kai Ni d894e23a06 assert_equal for a list of matrices 2010-02-28 00:48:42 +00:00
Manohar Paluri 4604cbce05 svd now handles m < n cases. Added unit tests to verify this. But svd in place will throw an exception for such cases. 2010-02-27 18:23:34 +00:00
justinca 9941b28128 Fix matrix inverse square root so it, once again, returns an upper triangular matrix 2010-02-26 18:53:41 +00:00
Frank Dellaert 17bd59ec80 only call alpha calls if CBLAS version will be called. 2010-02-26 03:23:48 +00:00
Alex Cunningham 9955ea20bd Added pure cblas implementation of multiplyAdd functions. This does not have autotools support yet, so to enable, goto cpp/Makefile.am, comment out the block concerning GSL/ATLAS, and uncomment the above section enabling just blas. 2010-02-24 18:12:48 +00:00
Frank Dellaert 71089a6354 vector_scale_inplace 2010-02-24 06:12:56 +00:00
Kai Ni 547427514f add save functions for Matrix and Vector to save them to disk 2010-02-24 00:12:10 +00:00
Frank Dellaert 5b6af9e4bd 1.0 versions of BLAS level 2 2010-02-20 23:44:07 +00:00
Frank Dellaert 3247751b5d Major check-in: there are now two interchangeable implementations of VectorConfig.
VectorMap uses a straightforward stl::map of Vectors. It has O(log n)
insert and access, and is fairly fast at both. However, it has high overhead
for arithmetic operations such as +, scale, axpy etc...

VectorBTree uses a functional BTree as a way to access SubVectors
in an ordinary Vector. Inserting is O(n) and much slower, but accessing,
is O(log n) and might be a bit slower than VectorMap. Arithmetic operations
are blindingly fast, however. The cost is it is not as KISS as VectorMap.

Access to vectors is now exclusively via operator[]
Vector access in VectorMap is via a Vector reference
Vector access in VectorBtree is via the SubVector type (see Vector.h)

Feb 16 2010: FD: I made VectorMap the default, because I decided to try
and speed up conjugate gradients by using Sparse FactorGraphs all the way.
2010-02-17 03:29:12 +00:00
Frank Dellaert 5d33eb185c added SubVector type and some related routines 2010-02-15 23:53:16 +00:00
Manohar Paluri 693e13ef88 added default bool option to svd to sort the singular values and V. the default is true so pass false to avoid sorting 2010-02-14 04:54:39 +00:00
Alex Cunningham ea3b8083b0 Fixed more tests for NonlinearConstraints, inequality constraints now work. 2010-02-07 01:18:17 +00:00
Frank Dellaert 5554f6fc7e Faster non-GSL versions of BLAS 2-style calls 2010-01-31 22:56:06 +00:00
Alex Cunningham efe51c8419 Fixed typo in function name 2010-01-31 21:09:03 +00:00
Alex Cunningham c266012dcd Added GSL/ATLAS version of multiplyAdd() and transposeMultiplyAdd() 2010-01-31 18:25:03 +00:00
justinca 74dd7128ac Fixup cholesky decomposition - rename to LLt and RtR to make convention clear 2010-01-31 18:07:29 +00:00
Alex Cunningham 48d2dabe43 Added in-place insertion functions to Matrix, as well as a #define flag to enable or disable GSL code without a reconfigure. 2010-01-31 17:21:07 +00:00
Frank Dellaert 5e4b23df59 Matrix::multiplyAdd and transposeMultiplyAdd are "level 2" BLAS and speed up the numeric part of the code substantially. Alex might be able to speed them up even more by making them use real BLAS code within Matrix.cpp. 2010-01-31 16:04:24 +00:00
Frank Dellaert 4f998e5ecd Matrix::transposeMultiplyAdd 2010-01-31 02:53:03 +00:00
justinca 16c55975c1 Fix inverse_square_root, add cholesky decomposition options 2010-01-22 22:28:03 +00:00
Kai Ni 4b778a4e82 fixed a bug in matrix solve function 2010-01-22 06:45:01 +00:00
Alex Cunningham ac746ccead Improved performance of updateAb in NoiseModel with GSL/ATLAS. Various other small optimizations were made. 2010-01-21 18:51:59 +00:00
Alex Cunningham 063aa14118 Reimplemented matrix::householder_update using GSL and BLAS, you'll need to edit Makefile.am to enable the new version -- see email 2010-01-21 00:59:33 +00:00
Alex Cunningham 5f588031bc Merged NoiseQR back into trunk 2010-01-20 18:32:48 +00:00
Alex Cunningham 9c9007920a Changed the interface on Matrix::column() so that it uses the one in our library (now called column_() ) rather than the boost default. Currently, our implementation just uses the boost default, but this may change due to timing results. 2010-01-20 16:08:14 +00:00
Alex Cunningham 98b143cd22 Switched all loop indices in Matrix/Vector to size_t, with improved results in timeGaussianFactorGraph 2010-01-20 14:42:05 +00:00
Alex Cunningham 6bc0462669 Checked Matrix::collect() with different timing metric, and memcpy has approx 25% speedup over original version. Matrix_range is slower or the same speed as the original version. 2010-01-20 13:45:22 +00:00
Alex Cunningham 55e414cbdd Tried noalias() for collect(), but no real improvement 2010-01-20 03:25:55 +00:00
Alex Cunningham 03ec3e3e62 Implemented a version of collect() using matrix_range, but it had worse performance than memcpy. New version of vector_scale[column] with new pointer arithmetic implementation for approx 20% improvement. 2010-01-20 02:28:25 +00:00
Alex Cunningham 820ae5682d Optimized row version of vector_scale with approx 20% improvement 2010-01-20 02:04:25 +00:00
Alex Cunningham b860f06614 Switched Matrix::collect() over to a memcpy, but the results weren't actually an improvement 2010-01-20 01:42:36 +00:00
Alex Cunningham f577b27f52 Small optimizations on Matrix::collect(), additional timing capabilities, and now collect() can have dimensions specified to avoid need for lookup. 2010-01-19 21:49:22 +00:00