LA 0.1 (Default branch)


 
Thread Tools Search this Thread
Special Forums News, Links, Events and Announcements Software Releases - RSS News LA 0.1 (Default branch)
# 1  
Old 03-07-2008
LA 0.1 (Default branch)

The LA library provides a C++ vector and matrix class with an interface to BLAS and LAPACK linear algebra libraries and a few additional features. Templates (including some simple template metaprogramming) are employed in order to achieve generic applicability of the algorithms. In particular, iterative methods suitable for sparse matrices can be applied to your custom matrix class, which does not need to provide any explicit storage of the matrix elements (only matrix times vector operation has to be implemented). License: GNU General Public License v3 Changes:
The library has already been in use, but not every function and method has been thoroughly tested yet. Only a very limited subset of LAPACK routines is presently interfaced. The selection was determined solely by the needs of a particular research in quantum chemistry.Image

More...
Login or Register to Ask a Question

Previous Thread | Next Thread
Login or Register to Ask a Question
branch(2rheolef)						    rheolef-6.1 						  branch(2rheolef)

NAME
branch - a parameter-dependent sequence of field DESCRIPTION
Stores a field sequence together with its associated parameter value: a branch variable represents a pair (t,uh(t)) for a specific value of the parameter t. Applications concern time-dependent problems and continuation methods. This class is convenient for file inputs/outputs and building graphical animations. EXAMPLES
Coming soon... LIMITATIONS
This class is under development. The branch class store pointers on field class without reference counting. Thus, branch automatic variables cannot be returned by func- tions. branch variable are limited to local variables. IMPLEMENTATION
template <class T, class M = rheo_default_memory_model> class branch_basic : public std::vector<std::pair<std::string,field_basic<T,M> > > { public : // typedefs: typedef std::vector<std::pair<std::string,field_basic<T,M> > > base; typedef typename base::size_type size_type; // allocators: branch_basic (); branch_basic (const std::string& parameter_name, const std::string& u0); branch_basic (const std::string& parameter_name, const std::string& u0, const std::string& u1); ~branch_basic(); // accessors: const T& parameter () const; const std::string& parameter_name () const; size_type n_value () const; size_type n_field () const; // modifiers: void set_parameter (const T& value); void set_range (const std::pair<T,T>& u_range); // input/output: // get/set current value __obranch<T,M> operator() (const T& t, const field_basic<T,M>& u0); __obranch<T,M> operator() (const T& t, const field_basic<T,M>& u0, const field_basic<T,M>& u1); __iobranch<T,M> operator() (T& t, field_basic<T,M>& u0); __iobranch<T,M> operator() (T& t, field_basic<T,M>& u0, field_basic<T,M>& u1); __branch_header<T,M> header (); __const_branch_header<T,M> header () const; __const_branch_finalize<T,M> finalize () const; rheolef-6.1 rheolef-6.1 branch(2rheolef)