GSoC/GCI Archive
Google Summer of Code 2009

Scilab/Digiteo Foundation

Web Page: http://wiki.scilab.org/Ideas_of_development_for_Scilab

Mailing List: http://www.scilab.org/contactus/index_contactus.php?page=mailing_lists

Scilab Software provides a powerful open platform for engineering and scientific applications. Nowaday, Scilab is the reference for Open Source Numerical Software Package. Scilab is currently used in educational and industrial environments around the world. There are more than 50,000 monthly remote loadings from Scilab Web site. About 100 countries download Scilab. Scilab includes hundreds of mathematical functions with complete on-line help. It has a high level programming language. It allows making 2-D and 3-D graphics, and animation. Scilab works under Windows 2000/XP/Vista, GNU/Linux and Mac OS X. Scilab is highly extensible and can be used in many different fields.

Projects

  • Add multiprecison computations to Scilab Scilab currently lacks support for precise calculations, and only is capable of machine-precision computations. Using available libraries, support for arbitrary precision calculations can be added.
  • CUDA implemantation of numerical algorithms In order to benefit from recent technologies of GPGPU that allow significant speedup in numerical computation, this proposal aims at porting the main SciLab algorithms (LU decomposition, FFT, eigenvalues computation...) to CUDA architecture, so that the software can use the GPU to do its computation.
  • Flexible implementation of advanced neural network capabilities under Scilab For a platform such as Scilab, providing a fast and reliable implementation of ANN is of high priority. Users should be able to build and activate a network in just a few commands. Several implementations of ANN exist in various programming languages. The solution is to interface Scilab with one of those existing implementations. This project proposal exposes the details of a solution based upon the SNNS library, and discusses the evolution of such an ANN toolbox.
  • Improved support for solving systems of nonlinear equations Scilab's function fsolve computes a root of a system of nonlinear equations. Currently, fsolve is a wrapper around the subroutine HYBRD. HYBRD is well suited to solving systems with dense derivatives, but can not solve large systems with sparse derivatives. I propose to improve the current interface to HYBRD, construct a test set of nonlinear systems with dense and sparse derivatives, and implement an experimental solver for systems of nonlinear equations with sparse derivatives.
  • Rendering Scilab Graphism in VTK Scilab currently uses OpenGL through it's Java bindings - JOGL - to render 2D and 3D graphics. This implementation has disadvantages. It is difficult to code and maintain due to the interaction between Java and C++, has performance issues and is difficult to integrate with the Java/Swing GUI. The aim of this project is to overcome these limitations by implementing graphics rendering in VTK.
  • Symbolic computing module This project consist in a module that will let work with symbolic math on scilab. There is a module that connect scilab with Maxima through an intermediary program but this way is very slow, a faster way is to create a dynamic library of Maxima with ECL, but a native tool is a better choice. A lighter way is using GiNac library, the integration with scilab will be easier, and there is more programmers on C++ than Lisp, so more people would enhance the tool. This approach is the one I prefer.