GSoC/GCI Archive
Google Summer of Code 2014

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/lmnd-devel

Quick links: lmonade homepage, lmonade GSoC page, project ideas

As 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:

[IMAGE http://www.lmona.de/static/logo-lmonade-65-65.png]

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.

Website | lmnd-devel@googlegroups.com | #lmnd on Freenode

[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.

Website | flint-devel@googlegroups.com | #lmnd on Freenode

[IMAGE http://ilastik.org/ilastik-logo_name_tagline.png]

ilastik

ilastik is a simple, user-friendly tool for image classification and segmentation that aims to enable non-experts to apply machine learning algorithms to their image processing problems

Website | ilastik-gsoc@ilastik.org | #lmnd on Freenode

[IMAGE http://ukoethe.github.io/vigra/vigra_logo.gif]

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 multi-dimensional images, because many algorithms (e.g. filters, feature computation, superpixels) are implemented for arbitrary high dimensions.

Website | ilastik-devel@ilastik.org | #ilastik on Freenode

[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 strongly-typed high-level programming language for expressing a mathematical concepts. Over 1,000 mathematical domains and categories are collected in the FriCAS Library.

Website | fricas-devel@googlegroups.com | #lmnd on Freenode

[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 non-commutative algebra, algebraic geometry, and singularity theory.
Singular provides basic multivariate polynomial data structures in Sage as well as most of the advanced commutative algebra functionality. Macaulay2 relies on Singular for multivariate polynomial factorization.

Website | libsingular-devel@googlegroups.com | #lmnd on Freenode

[IMAGE http://polybori.sourceforge.net/img/logo_tiny.png]

PolyBoRi

PolyBoRi is a C++ library for Polynomials over Boolean Rings, which provides high-level data types for Boolean polynomials. A python-interface yields extensible algorithms for computing Groebner bases over Boolean Rings.

Website | polybori-discuss@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 well-suited 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.

Website | aldor-devel@googlegroups.com | #lmnd on Freenode

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 Block-Wiedemann 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.