lmonade: scientific software distribution
License: GNU General Public License (GPL)
Web Page: http://wiki.lmona.de/get_involved/gsoc
Mailing List: https://groups.google.com/forum/?fromgroups#!forum/lmnddevel
Quick links: lmonade homepage, lmonade GSoC page, project ideasAs a mentoring organization, lmonade promotes ideas to improve various open source/free scientific software, especially computational algebra and image processing projects.
Scientific software poses many interesting challenges that provide a concrete introduction to data structures and algorithms as well as various application areas. Proposed projects are usually immediately useful in research, yet they still serve as a good starting point for new developers. We hope that seeing the results will encourage contributors to stick around and help with more advanced problems later on.
lmonade is an umbrella organization for the following projects:
lmonade 

lmonade is a platform for development and distribution of mathematical software. It creates an environment where software can be installed on various GNU/Linux distributions and OSX without administrative rights. Development of certain mathematics packages under this environment is also supported. 

[IMAGE http://wiki.lmona.de/get_involved/gsoc?action=AttachFile&do=get&target=flint.png] 
FLINT 
FLINT is a C library for number theory. As a part of Sage and Singular, it provides fast arithmetic and factorization for univariate polynomials over the integers and finite fields. For most of this functionality, FLINT has the fastest implementation available, among commercial and open source software packages. 

ilastik 

ilastik is a simple, userfriendly tool for image classification and segmentation that aims to enable nonexperts to apply machine learning algorithms to their image processing problems 

VIGRA 

VIGRA is a C++ library for image processing and analysis that puts its main emphasis on customizable algorithms and data structures. It is especially strong for multidimensional images, because many algorithms (e.g. filters, feature computation, superpixels) are implemented for arbitrary high dimensions. 

[IMAGE http://wiki.lmona.de/get_involved/gsoc?action=AttachFile&do=get&target=fricas_logo.png] 
FriCAS 
Fricas is a general purpose system for doing mathematics by computer. It is a descendant (fork) of Axiom. It is especially useful for symbolic calculations, mathematical research and for the development of new mathematical algorithms. FriCAS has a stronglytyped highlevel programming language for expressing a mathematical concepts. Over 1,000 mathematical domains and categories are collected in the FriCAS Library. 

[IMAGE http://wiki.lmona.de/get_involved/gsoc?action=AttachFile&do=get&target=singular_only_logo.png] 
Singular 
Singular is a computer algebra system for polynomial computations, with special emphasis on commutative and noncommutative algebra, algebraic geometry, and singularity theory. 

Website  libsingulardevel@googlegroups.com  #lmnd on Freenode 
PolyBoRi 

PolyBoRi is a C++ library for Polynomials over Boolean Rings, which provides highlevel data types for Boolean polynomials. A pythoninterface yields extensible algorithms for computing Groebner bases over Boolean Rings. 

Website  polyboridiscuss@lists.sourceforge.net  #lmnd on Freenode 
[IMAGE http://wiki.lmona.de/get_involved/gsoc?action=AttachFile&do=get&target=aldor_logo.png] 
Aldor 
Aldor is a programming language with an expressive type system wellsuited for mathematical computing and which has been used to develop a number of computer algebra libraries. Originally known as A#, Aldor was conceived as an extension language for the Axiom system, but is now used more in other settings. 

Projects
 Image features for machine learning in VIGRA For a wide range of scientific applications algorithms that analize texture, pixel distribution or shape are key components. I propose providing VIGRA an implementation, documentation and testing of this key components using as reference libraries shuch as the CellCognition project.
 Implementing methods to find the Hermite normal form in FLINT I will implement highly efficient algorithms to compute the Hermite normal form of a matrix of integers within the FLINT library.
 Implementing the LLL algorithm in FLINT The project is to implement a basic LLL in FLINT allowing for parameters to be supplied governing the strength of reduction, followed by a couple of the more interesting modern versions, including the LLL with removals and ULLL, a version of LLL with better complexity in terms of the size of the entries. mentors: Bill Hart, Fredrik Johansson
 Improved type checker for FriCAS Project aims at partial reimplementation of type checker in Spad compiler of FriCAS. Main goals include: better type inference, stricter type system, understandable diagnostic messages.
 Lazy Connected Components My proposal is about integrating a truely lazy operator for connected components into ilastik, lazyflow and vigra. This new operator would make use of both the graph/operator framework for ease of use and the vigra library for efficient computation.
 M1RI The goal of this project is to impliment a matrix library with bitslicing techniques described by Tom Boothby and Robert Bradshaw here http://arxiv.org/abs/0901.1413. This takes the “Method of Four Russians”, an algorithm made for efficient logical matrix algorithms, and using bitslicing to extend that to matrices over finite fields. GF(3), GF(5), and GF(7) matrices will be the scope of this project.
 Parallel Computation of Matrix Invariant Factors in Linbox Linbox currently possesses an implementation of the BlockWiedemann algorithm for solving black box matrices. I propose extending this capability so that users can compute the invariant factors of a matrix, using OpenMP to allow for parallel computing on multicore machines.