On 21 May, 07:36, Sergey Bochkanov <sergey.bochka...@alglib.net> wrote: > Hello, Jason. > > You wrote 21 мая 2010 г., 3:48:03: > > > A while ago someone talked about incorporating ALGLIB into Sage to > > provide, among other things, multiprecision linear algebra. > > It was me :) I am working on this issue. I expect that interface > between double precision ALGLIB and Python will be ready in 2-3 weeks, > with multiple precision interface following several weeks later. > > > Does anyone have experience with mplapack? How does it compare to > > ALGLIB in linear algebra (for algorithms that are implemented in both)? > > I haven't benchmarked mplapack, but I can say something about it and > can compare it with ALGLIB: > > == ALGORITHMS ======================================================== > > MPLAPACK includes all LAPACK algorithms, especially wide set of > generalized EVD/SVD solver. Nothing beyond LAPACK is included. > > ALGLIB includes subset of LAPACK: real/complex/SPD/HPD triangular > factorizations, inverses, solvers; real/complex/Hermitian EVD, real > SVD. However, it also includes algorithms beyond linear algebra: > numerical integration, interpolation/fitting, optimization, many other > algorithms (including those which won't benefit from multiple > precision). > > == MULTIPLE PRECISION SUPPORT ======================================== > > MPLAPACK supports several multiple precision types: > * mpf_t (GMP) > * mpfr_t (MPFR) > * double-double and quad-double (DD/QD package) > * double (standard 64-bit floating point type) > > However, only mpfr_t (and double) support is important. Other multiple > precision types are almost useless due to IEEE-nonconformance: > * mpf_t is not recommended for numerical work (it leads to > non-reproducible results and have very odd rounding rules; even GMP > manual recommends to use MPFR)
+1 > * DD/QD may look attractive (very high performance for 106 and 212 > bits when compared with mpfr_t), but it is no good for numerical work > too (except for BLAS internals; see page 31 > ofhttp://www.netlib.org/lapack/lawnspdf/lawn149.pdf ). > +1 - very important point > ALGLIB supports mpfr_t and double. > > == PROGRAMMING LANGUAGE ============================================== > > MPLAPACK is written in C++ and uses C++ to handle multiple precision > types like built-in floating point types (i.e. it uses "a=b+c/d" > instead of directly calling MPFR functions). It leads to unnecessary > allocation of temporaries and some performance penalty (about 25-30% > for 128-bit precision). > > Multiple precision ALGLIB 2.5.0 is written in C++ and suffers from the > same drawbacks. But what I develop for SAGE is a faster pure C library > which caches all temporaries (it is really easy to develop - I just > have to modify code generator which is used to generate ALGLIB > source). > > == OPTIMIZATIONS ===================================================== > > Both packages rely on highly optimized MPFR for multiple precision > computations. > > As for double precision, ALGLIB uses better optimized linear algebra > code. > > == MULTITHREADING ==================================================== > > Both project don't support multithreading yet. Both want to :) > > == LICENSE =========================================================== > > MPLAPACK is LGPL 3+, ALGLIB is GPL 2+. > > -- > With best regards, > Sergey mailto:sergey.bochka...@alglib.net > > -- > To post to this group, send an email to sage-devel@googlegroups.com > To unsubscribe from this group, send an email to > sage-devel+unsubscr...@googlegroups.com > For more options, visit this group athttp://groups.google.com/group/sage-devel > URL:http://www.sagemath.org -- To post to this group, send an email to sage-devel@googlegroups.com To unsubscribe from this group, send an email to sage-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URL: http://www.sagemath.org