Difference between revisions of "Review:Mastrave"

From Free Software Directory
Jump to: navigation, search
m (<replacetext_editsummary>)
 
(7 intermediate revisions by the same user not shown)
Line 7: Line 7:
 
Mastrave is a [http://www.fsf.org/licensing/essays/free-sw.html free software] library written to perform vectorized scientific computing and to be as compatible as possible with both [http://www.gnu.org/software/octave/ GNU Octave] and [http://www.mathworks.it/help/techdoc/ref/funcalpha.html Matlab] computing frameworks, offering general purpose, portable and freely available features for the scientific community.  Mastrave is mostly oriented to ease complex modeling tasks such as those typically needed within environmental models, even when involving irregular and heterogeneous data series.
 
Mastrave is a [http://www.fsf.org/licensing/essays/free-sw.html free software] library written to perform vectorized scientific computing and to be as compatible as possible with both [http://www.gnu.org/software/octave/ GNU Octave] and [http://www.mathworks.it/help/techdoc/ref/funcalpha.html Matlab] computing frameworks, offering general purpose, portable and freely available features for the scientific community.  Mastrave is mostly oriented to ease complex modeling tasks such as those typically needed within environmental models, even when involving irregular and heterogeneous data series.
  
 
+
=====Semantic array programming=====
====Semantic array programming====
 
  
 
The Mastrave project attempts to allow a more effective, quick interoperability between GNU Octave and Matlab users by using a reasonably well documented wrap around the main incompatibilities between those computing environments and by promoting a reasonably general idiom based on their common, stable syntagms.  It also promotes the systematic adoption of data-transformation abstractions and lightweight [http://cvs.savannah.gnu.org/viewvc/*checkout*/mastrave/doc/time_series_03-SemanticConstraints_06c.svg?root=mastrave semantic constraints] to enable concise and reliable implementations of models following the paradigm of semantic array programming.
 
The Mastrave project attempts to allow a more effective, quick interoperability between GNU Octave and Matlab users by using a reasonably well documented wrap around the main incompatibilities between those computing environments and by promoting a reasonably general idiom based on their common, stable syntagms.  It also promotes the systematic adoption of data-transformation abstractions and lightweight [http://cvs.savannah.gnu.org/viewvc/*checkout*/mastrave/doc/time_series_03-SemanticConstraints_06c.svg?root=mastrave semantic constraints] to enable concise and reliable implementations of models following the paradigm of semantic array programming.
  
There are a couple of underlying ideas: library design is language design and vice versa (Bell labs); language notation is definitely a "tool of thought" ([http://www.dcs.gla.ac.uk/~wpc/grcs/a1979-iverson.pdf Iverson]), in the sense that there is a feedback between programming/mathematical notation and the ability to think new scientific insights.  And perhaps ethic ones.
+
There are a couple of underlying ideas: library design is language design and vice versa (Bell labs); language notation is definitely a "tool of thought" ([http://www.dcs.gla.ac.uk/~wpc/grcs/a1979-iverson.pdf K. Iverson]), in the sense that there is a feedback between programming/mathematical notation and the ability to think new scientific insights.  And perhaps ethic ones.
  
 
+
=====Science and society=====
====Science and society====
 
  
 
Mastrave is free software, which is software [http://www.gnu.org/licenses/gpl-faq.html respecting your freedom].  As many other free scientific software packages, it is offered to the scientific community to also promote the development of a free society more concerned about cooperation rather than competitiveness, heading toward knowledge and culture freedom.
 
Mastrave is free software, which is software [http://www.gnu.org/licenses/gpl-faq.html respecting your freedom].  As many other free scientific software packages, it is offered to the scientific community to also promote the development of a free society more concerned about cooperation rather than competitiveness, heading toward knowledge and culture freedom.
Line 26: Line 24:
 
|Computer languages=Matlab/GNU Octave,Bash script,C++,Prolog,PHP,xslt,
 
|Computer languages=Matlab/GNU Octave,Bash script,C++,Prolog,PHP,xslt,
 
|Documentation note=&nbsp;
 
|Documentation note=&nbsp;
 
+
=====Documentation and Mastrave coding standard=====
The core of Mastrave is based on the essential intersection of the GNU Octave and Matlab languages. As a consequence, each module/function of the Mastrave library can be documented directly within the source code, using comments. The documentation can be accessed - as with each GNU Octave/Matlab function - by typing
+
<p id="Mastrave_Coding_Standard">&nbsp;</p>The core of Mastrave is based on the essential intersection of the GNU Octave and Matlab languages. As a consequence, each module/function of the Mastrave library can be documented directly within the source code, using comments. The documentation can be accessed - as with each GNU Octave/Matlab function - by typing
  
  
Line 38: Line 36:
 
Each GNU Octave/Matlab function of Mastrave follows a fixed semantic documentation template for supporting users in ergonomically accessing relevant information:
 
Each GNU Octave/Matlab function of Mastrave follows a fixed semantic documentation template for supporting users in ergonomically accessing relevant information:
  
 +
<div style="height: 75em"><div style="min-width:500px;position:absolute">
 
  Copyright (C) year author(s)
 
  Copyright (C) year author(s)
 
   
 
   
Line 43: Line 42:
 
  <span style="color:grey">[ ... GNU GPLv3+ license notice ... ]</span>
 
  <span style="color:grey">[ ... GNU GPLv3+ license notice ... ]</span>
 
   
 
   
  ----------------------------------------------------------------
+
  ----------------------------------------------------
 
   
 
   
  [ <span style="color:brown"><output<sub>1</sub>></span> ... <span style="color:brown"><output<sub>m</sub>></span> ] = <span style="color:blue"><function-name></span>(  
+
  [ <span style="color:brown"><output<sub>1</sub>></span>, ... <span style="color:brown"><output<sub>m</sub>></span> ] = ...
  <span style="color:brown"><input<sub>1</sub>></span>                    ,
+
    <span style="color:blue"><function-name></span>( <span style="color:brown"><input<sub>1</sub>></span>                    ,
  <span style="color:brown"><input<sub>2</sub>></span> = <span style="color:green"><default-value<sub>2</sub>></span> ,
+
                    <span style="color:brown"><input<sub>2</sub>></span> = <span style="color:green"><default-value<sub>2</sub>></span> ,
  ...                           
+
                    ...                           
  <span style="color:brown"><input<sub>n</sub>></span> = <span style="color:green"><default-value<sub>n</sub>></span> )
+
                    <span style="color:brown"><input<sub>n</sub>></span> = <span style="color:green"><default-value<sub>n</sub>></span> )
  <span style="color:grey">[ ... Few (up to some tens) lines of human readable text </span>
+
<span style="color:grey">[ ... Few (up to some tens) lines of human </span>
  <span style="color:grey">      describing the function ... ]</span>
+
  <span style="color:grey">      readable text describing the function ... ]</span>
 
   
 
   
 
   
 
   
Line 105: Line 104:
 
   
 
   
 
   
 
   
  Version: <span style="color:grey"><#a>.<#b>.<#c></span>
+
  Version: <span style="color:grey"><#a>.<#b>.<#c> (e.g. Version: 0.3.2)</span>
  
  
 +
</div></div>
 
|Version status=alpha
 
|Version status=alpha
 
}}
 
}}
Line 176: Line 176:
 
|Prerequisite kind=Required to use
 
|Prerequisite kind=Required to use
 
|Prerequisite description=GNU Octave version 3.2.x (or Matlab version 7)
 
|Prerequisite description=GNU Octave version 3.2.x (or Matlab version 7)
 +
}}
 +
{{Software prerequisite2
 +
|Prerequisite kind=Required to use
 +
|Prerequisite description=GDAL version 1.6.3
 
}}
 
}}
 
{{Software prerequisite2
 
{{Software prerequisite2
Line 188: Line 192:
 
|Prerequisite kind=Required to use
 
|Prerequisite kind=Required to use
 
|Prerequisite description=GNU Sed version 4.2.x
 
|Prerequisite description=GNU Sed version 4.2.x
 +
}}
 +
{{Software prerequisite2
 +
|Prerequisite kind=Required to use
 +
|Prerequisite description=GNU Grep version 2.5.x
 +
}}
 +
{{Software prerequisite2
 +
|Prerequisite kind=Required to use
 +
|Prerequisite description=GNU Wget version 1.12
 
}}
 
}}
 
{{Software prerequisite2
 
{{Software prerequisite2

Latest revision as of 15:02, 20 May 2012


Thank you for helping to improve the Free Software Directory!

This page has been reviewed. The admin who processed this submission may have left a comment at the top or bottom of this page.

Name Mastrave
Short description GNU GPLv3-covered library for effective semantic array programming. It is as compatible as possible with both GNU Octave and MATLAB computing environments, offering general purpose, portable and freely available features for the scientific community.
Full description  

Mastrave is a free software library written to perform vectorized scientific computing and to be as compatible as possible with both GNU Octave and Matlab computing frameworks, offering general purpose, portable and freely available features for the scientific community. Mastrave is mostly oriented to ease complex modeling tasks such as those typically needed within environmental models, even when involving irregular and heterogeneous data series.

Semantic array programming

The Mastrave project attempts to allow a more effective, quick interoperability between GNU Octave and Matlab users by using a reasonably well documented wrap around the main incompatibilities between those computing environments and by promoting a reasonably general idiom based on their common, stable syntagms. It also promotes the systematic adoption of data-transformation abstractions and lightweight semantic constraints to enable concise and reliable implementations of models following the paradigm of semantic array programming.

There are a couple of underlying ideas: library design is language design and vice versa (Bell labs); language notation is definitely a "tool of thought" (K. Iverson), in the sense that there is a feedback between programming/mathematical notation and the ability to think new scientific insights. And perhaps ethic ones.

Science and society

Mastrave is free software, which is software respecting your freedom. As many other free scientific software packages, it is offered to the scientific community to also promote the development of a free society more concerned about cooperation rather than competitiveness, heading toward knowledge and culture freedom.

Such a vision implies the possibility for motivated individuals to freely access, review 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) while systematically promoting reproducible research. This is a long-term goal to which the free software paradigm can and has been able to actively cooperate.

Homepage URL http://mastrave.org
Is GNU No
GNU package name
User level advanced
Component programs
VCS checkout command cvs -z3 -d":pserver:anonymous@cvs.savannah.nongnu.org:/sources/mastrave" co mastrave
Computer languages Matlab/GNU Octave,Bash script,C++,Prolog,PHP,xslt,
Documentation note  
Documentation and Mastrave coding standard

 

The core of Mastrave is based on the essential intersection of the GNU Octave and Matlab languages. As a consequence, each module/function of the Mastrave library can be documented directly within the source code, using comments. The documentation can be accessed - as with each GNU Octave/Matlab function - by typing


help <function-name>


within either GNU Octave or Matlab computing environment. According to ohloh.net, "Across all Matlab projects on Ohloh, 23% of all source code lines are comments. For Mastrave, this figure is 52%" [source: http://www.ohloh.net/p/mastrave/factoids/]

Each GNU Octave/Matlab function of Mastrave follows a fixed semantic documentation template for supporting users in ergonomically accessing relevant information:

Copyright (C) year author(s)

This file is part of Mastrave.
[ ... GNU GPLv3+ license notice ... ]

----------------------------------------------------

[ <output1>, ... <outputm> ] = ...
   <function-name>( <input1>                    ,
                    <input2> = <default-value2> ,
                    ...                           
                    <inputn> = <default-valuen> )
[ ... Few (up to some tens) lines of human  
      readable text describing the function ... ]



(optional) References:
[ ... Bibliographic scientific references 
      (see for example @get_reference_data) ... ]



Input arguments:

<input1>     ::<constraint1>::
             Description of the first input argument, its
             semantic constraint(s) and (if the input
             argument is optional) its default value
             <default-value1>.

[...]

<inputn>     ::<constraintn>::
             Description of the n-th input argument, its
             semantic constraint(s) and (if the input
             argument is optional) its default value
             <default-valuen>.



Examples of usage:

[ ... Short set of mostly independent lines of code to 
      illustrate the function's main features ... ]



(optional) Memory requirements:
[ ... In case of non trivial algorithms for which memory 
      issues can be expected to apply in particular 
      usages, an analysis of the memory requirements 
      is provided using the big O notation ... ]



See also:
[ ... Related Mastrave functions ... ]



Keywords:
[ ... Set of meaningful keyword to ease the 
      function discovery ... ]



Version: <#a>.<#b>.<#c> (e.g. Version: 0.3.2)


Paid support
Microblog
IRC help
IRC general
IRC development
Related projects
Keywords
Version identifier
Version date
Version status alpha
Version download
Version comment
Finished review yes



License: GNU GPLv3+

License note: For PHP files:

Additional permission under GNU GPL version 3 section 7

  If you modify this Program, or any covered work, by linking or combining
  it with PHP (or a modified version of PHP), containing parts covered by
  the terms of PHP's license, the licensors of this Program grant you
  additional permission to convey the resulting work. Corresponding
  Source for a non-source form of such a combination shall include the
  source code for the parts of PHP used as well as that of the covered
  work.





Real name: Daniele de Rigo

Role: Project leader

Email: Contact the author via Savannah (authentication needed)


Resource audience: Users (e.g. environmental scientists, computational science modelers,...)

Resource kind: Support

Resource URL: https://savannah.nongnu.org/support/?func=additem&group=mastrave

Resource audience: Expert users, Developers of derived packages

Resource kind: VCS Repository Webview

Resource URL: http://cvs.savannah.gnu.org/viewvc/mastrave/?root=mastrave

Resource audience: Users

Resource kind: Homepage

Resource URL: http://mastrave.org

Resource audience: Users, GNU/Linux distribution maintainers

Resource kind: Download

Resource URL: http://mastrave.org/download.html

Resource audience: Expert users, Developers of derived packages

Resource kind: General Subscribe

Resource URL: https://savannah.nongnu.org/account/register.php

Resource audience: Users (e.g. environmental scientists, computational science modelers,...)

Resource kind: Forum

Resource URL: http://identi.ca/group/mastrave

Resource audience: Scientists, Research teams interested in the Mastrave research program

Resource kind: Support

Resource URL: http://mastrave.org/research.html

Audio:
Biology:
Business:
Chat:
Database:
Documentation-tool:
Editor:
Education:
Email:
Game:
Geography:
Graphics:
Hobbies:
Html-editor:
Interface: command-line, library
Internet-application:
Library:
Live-communications:
Localization:
Mathematics: statistics
Network-hookup:
Printing:
Program-build-automation:
Programming-language:
Protocol:
Science: artificial-intelligence, engineering
Security:
Software-development:
System-administration:
Text-creation:
Use: library, mathematics, science
Version-control: cvs
Video:
Web-authoring:
Works-with:
Works-with-format:


Prerequisite kind: Required to use

Prerequisite description: GNU Octave version 3.2.x (or Matlab version 7)


Prerequisite kind: Required to use

Prerequisite description: GDAL version 1.6.3


Prerequisite kind: Required to use

Prerequisite description: BASH shell version 4.x


Prerequisite kind: Required to use

Prerequisite description: GNU Coreutils version 7.x


Prerequisite kind: Required to use

Prerequisite description: GNU Sed version 4.2.x


Prerequisite kind: Required to use

Prerequisite description: GNU Grep version 2.5.x


Prerequisite kind: Required to use

Prerequisite description: GNU Wget version 1.12


Prerequisite kind: Weak prerequisite

Prerequisite description: GNU Compiler Collection version 4.4.x


Prerequisite kind: Weak prerequisite

Prerequisite description: php version 5 (only development branch)


Prerequisite kind: Weak prerequisite

Prerequisite description: GNU Prolog version 1.3.x or SWI-Prolog version 5.8.x (only development branch)



Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the page “GNU Free Documentation License”.

The copyright and license notices on this page only apply to the text on this page. Any software or copyright-licenses or other similar notices described in this text has its own copyright notice and license, which can usually be found in the distribution or license text itself.