Hello!

Second  beta  of  ALGLIB.spkg  is  ready.  It  can  be downloaded from
http://www.alglib.net/share/2010-07-26-alglib-for-sage/

Following issues were solved in this release:
* compilation on SPARC/Solaris
* missing support for SAGE64
* trashing of SAGE_LOCAL with additional dirs

Issues that were NOT solved in this release:
* OS X compilation (will be done in the next version)

What's new in this release:
* it was tested under SPARC/Solaris (and it works)
* it was tested with both 2.7 and 3.1 branches of Python
*  Python-ALGLIB  communication tests were added. They test ability to
pass  data between computational core and Python environment. They can
also  be  used to generate doctests (will be implemented in one of the
next  releases).  Only two units are tested now: matdet and matinv (41
test in total), but one day we will see 100% coverage by communication
tests.   
* ALGLIB interface gradually becomes more user-friendly (see below).

Plans for the future:
* OS X testing
* better integration with Sage (see below)


-- NEW 'FRIENDLY' INTERFACE --

Two  units  (matdet and matinv) now support two forms of calling their
functions:  'long'  form,  where matrix size and storage is explicitly
specified  by  function  parameters,  and  'friendly' form, where this
information is automatically determined from arguments.   

EXAMPLE: you want calculate inverse of SPD matrix a=[[3,2],[2,3]].

In the 'long' mode it can be done by

$ matinv.spdmatrixinverse([[3,2],[2,3]],2,False)

call.  Here  second argument is matrix size, third argument is storare
format  (False  =  only lower triangle of symmetric matrix is stored).
This is LAPACK style of calling linear algebra functions.  

In the 'friendly' mode you can just call

$ matinv.spdmatrixinverse([[3,2],[2,3]])

Function  will automatically determine matrix size and will check that
its  argument  is  symmetric  matrix  given  by  both  upper and lower
triangles.  In  case  of  non-symmetric  argument an exception will be
generated.  This  mode  is designed to be easy to use from interactive
Python (or Sage) prompt.    

Currently   only   two   units  (determinants  and  inverses)  support
'friendly'  mode,  but  I  want to make whole ALGLIB 'friendly'  after
several months from now.


-- SAGE INTEGRATION --

Well,  ALGLIB  can  be called from Python and Sage by now. But I think
that more can be done to integrate it with Sage. For example, we can't
write  

sage: A = Matrix([[3,2],[2,3]])
sage: matdet.rmatrixdet(A)

because ALGLIB uses Python's list-of-lists to store matrices, and Sage
uses  its own matrix class. But only several functions from _alglib.py
have to be fixed to work with Sage matrices/vectors:  
* safe_len/safe_cols/safe_rows
* is_bool_vector/is_int_vector/is_real_vector/is_complex_vector
* is_bool_matrix/is_int_matrix/is_real_matrix/is_complex_matrix
* x_from_list/x_from_listlist

I  think  that  it  is  very easy to do for someone familiar with Sage
internals. Anyone interested in helping me with this issue? 

-- 
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 at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to