Mastrave - Summary
This project is not part of the GNU Project.
About Mastrave: history, aim and copyright information
Mastrave is a library of subroutines written in order to be as far as possible compatible with both the GNU Octave and Matlab computing environments. The Mastrave project attempts to allow a more effective, quick interoperability between them by using a reasonably well documented wrap around their main incompatibilities and by promoting a reasonably general idiom based on their common, stable syntagms. It aims to build a solid layer of coherently designed utilities on top of the already valuable abstraction provided by these computing environments.
Knowledge and culture freedom
Mastrave is free software, which is software respecting your freedom. It is offered to the scientific community to promote the development of a free society more concerned about cooperation rather than competitiveness, heading toward knowledge and culture freedom, which implies the possibility for motivated individuals to freely access and contribute even to the cutting-edge academic culture. This possibility relies on the development of tools and methodologies helping to overcome economic, organizational and institutional barriers (i.e. knowledge oligopolies). This is a long-term goal to which the free software paradigm can and has been able to actively cooperate.
Adding on top: portability, scalability
Mastrave was originally conceived and written by Daniele de Rigo (in about 2005) to perform highly vectorized computation with the constraint to use a passably portable, scalable architecture and data/metadata manipulation abstraction -- with respect to the requirements needed when the project started.
Portability required to deal with the essential intersection of the GNU Octave and Matlab languages, without forsake efficiency and conciseness provided by the vectorized approach that makes sensible to use such computing environments.
Despite powerful GNU Octave language and library extensions and Matlab Toolboxes reach great "unilateral" capabilities, until now did not exist a systematic attempt to improve both of them with general purpose, portable and freely available features.
On the other hand, implementing some interesting features seems to need a choice among divergent objectives like preserving vectorial approach, accomplishing time efficiency or avoiding memory exhaustion for large data sets. The Mastrave project tried to mitigate this dilemma even through an extensive use of sparse matrices.
Freedom to review software-based scientific claims
In scientific environments, free, easy exchange and diffusion of information are the foundations of knowledge building. Independent validations, the possibility to independently review and repeat an experiment or a process having full access to structural information and the freedom of exploring different variants are notoriously the core of the scientific method.
Scientific oriented software should guarantee the same free, easy exchange and diffusion of information about itself. If the main result of a scientific publication is a new algorithm or a new software package claimed to be useful, it is in the scientific community's interest that the author make available a detailed description and a source code understandable, peer-reviewable and improvable by other scientists.
The possibility of a deep verification is especially needed for those results that infer theoretical conclusions by using non trivial numerical tasks.
A theoretical assumption could be justified a posteriori in the more persuading manner. However it may ignominiously collapse when discovering a subtle bug in the code used to infer it.
Cooperative scientific patterns
Mastrave encourages conciseness and focusing on the problem instead of on the dusty corners of the array programming language and on portability. Its general purpose abstraction and its pervasive requirement check try to move the code development from individual debug of both the actual problem and the other expensive unspecific tasks to a more specific coding, leaving to the community a collaborative debug and evolution of those general, common tasks.
That is the meaning of a free library.
On the other hand, a new algorithm created for a prosaic application may be brilliantly adapted opening unexpected opportunities in some other field, maybe becoming a general purpose utility.
But it needs to be accessible to other people, widely and freely. Such things as closed, black box armor-plated software or software patents might sound extravagant if applied to the science. What would happen if the Fast Fourier Transform were occulted under a software patent?
The source code for Mastrave is freely redistributable under the terms of the GNU General Public License (GPL) as published by the Free Software Foundation. As an handy reference for understanding some key aspects of the GNU General Public License, it could be said the GNU GPL guarantees that anyone who redistributes the software, with or without changes, must pass along the freedom to further copy and change it.
By distributing the complete source code for Mastrave under the terms of the GNU GPL, it is possible to guarantee that you and all other users have the freedom to redistribute and change both Mastrave and the growing collection of public scientific works that use Mastrave as a library. Moreover, you have the freedom to analyze in details how each computation is performed and how to improve it.
Everyone is encouraged to share this software with others under the terms of the GNU General Public License.
Mastrave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You are also invited to help to improve Mastrave by contributing new code for it and by reporting problems you may have.
Copyright (C) 2005, 2006, 2007, 2008, 2009 Daniele de Rigo
Verbatim copying and distribution of this entire article is permitted in any medium without royalty provided this notice is preserved.
Support and bugs
Please report any problem or presumed bug starting a new support request. Before you report a bug, if possible, try a current development snapshot. Bug reports should provide a concise but specific, complete and self-contained example of code that raises the problem.
Your report may help to resolve your problem, or it may not. However it could help to improve future versions of Mastrave, maybe sparing you or other people from experiencing still unknown problems. Therefore you can actively contribute to the maintenance of Mastrave by submitting your bug reports. After a technical review, a bug that has not yet been reported nor solved could be reassigned to the bug tracker.
Registration Date: Wed 06 Jun 2007 11:19:09 AM UTC
License: GNU General Public License v3 or later
Development Status: 2 - Pre-Alpha


