Difference between revisions of "Mastrave"

From Free Software Directory
Jump to: navigation, search
(new entry, starting from :Review submission)
 
Line 4: Line 4:
 
|Full description=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.
 
|Full description=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 version]), 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 22: Line 21:
 
|VCS checkout command=cvs -d":pserver:anonymous@cvs.savannah.nongnu.org:/sources/mastrave" co mastrave
 
|VCS checkout command=cvs -d":pserver:anonymous@cvs.savannah.nongnu.org:/sources/mastrave" co mastrave
 
|Computer languages=Matlab/GNU Octave,Bash script,C++,Prolog,PHP,xslt,
 
|Computer languages=Matlab/GNU Octave,Bash script,C++,Prolog,PHP,xslt,
|Documentation note=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
+
|Documentation note=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 [http://www.gnu.org/software/octave/doc/interpreter/Getting-Help.html help] within either GNU Octave or Matlab computing environment.  
 
 
 
 
[http://www.gnu.org/software/octave/doc/interpreter/Getting-Help.html help] <span style="color:blue"><function-name></span>
 
 
 
 
 
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.
 
<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"><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>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">      describing the function ... ]</span>
 
 
 
 
<span style="color:grey">(optional)</span> References:
 
<span style="color:grey">[ ... Bibliographic scientific references </span>
 
<span style="color:grey">      (see for example @[http://cvs.savannah.gnu.org/viewvc/*checkout*/mastrave/mastrave/src/mtv_m/get_reference_data.m get_reference_data]) ... ]</span>
 
 
 
 
Input arguments:
 
 
<span style="color:brown"><input<sub>1</sub>></span>    <span style="color:brown">'''::<constraint<sub>1</sub>>::'''</span>
 
              Description of the first input argument, its
 
              [http://cvs.savannah.gnu.org/viewvc/*checkout*/mastrave/mastrave/src/mtv_m/check_is.m semantic constraint(s)] and (if the input
 
              argument is optional) its default value
 
              <span style="color:green"><default-value<sub>1</sub>></span>.
 
 
<span style="color:grey">[...]</span>
 
 
<span style="color:brown"><input<sub>n</sub>></span>    <span style="color:brown">'''::<constraint<sub>n</sub>>::'''</span>
 
              Description of the ''n''-th input argument, its
 
              [http://cvs.savannah.gnu.org/viewvc/*checkout*/mastrave/mastrave/src/mtv_m/check_is.m semantic constraint(s)] and (if the input
 
              argument is optional) its default value
 
              <span style="color:green"><default-value<sub>n</sub>></span>.
 
 
 
 
Examples of usage:
 
 
<span style="color:grey">[ ... Short set of mostly independent lines of code to </span>
 
<span style="color:grey">      illustrate the function's main features ... ]</span>
 
 
 
 
<span style="color:grey">(optional)</span> Memory requirements:
 
<span style="color:grey">[ ... In case of non trivial algorithms for which memory </span>
 
<span style="color:grey">      issues can be expected to apply in particular </span>
 
<span style="color:grey">      usages, an analysis of the memory requirements </span>
 
<span style="color:grey">      is provided using the [http://en.wikipedia.org/wiki/Big_O_notation big O notation] ... ]</span>
 
 
 
 
See also:
 
<span style="color:grey">[ ... Related Mastrave functions ... ]</span>
 
 
 
 
Keywords:
 
<span style="color:grey">[ ... Set of meaningful keyword to ease the </span>
 
<span style="color:grey">      function discovery ... ]</span>
 
 
 
 
Version: <span style="color:grey"><#a>.<#b>.<#c></span>
 
 
 
 
 
 
|Version status=alpha
 
|Version status=alpha
 +
|Last review by=Kberry
 +
|Last review date=2011/10/23
 +
|Submitted by=Kberry
 +
|Submitted date=2011/10/23
 
|Page name=Mastrave
 
|Page name=Mastrave
}}
 
{{Project license2
 
|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.
 
 
 
}}
 
}}
 
{{Project license
 
{{Project license
Line 180: Line 88:
 
}}
 
}}
 
{{Featured}}
 
{{Featured}}
 +
{{Project license2
 +
|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.
 +
 +
}}

Revision as of 18:38, 29 March 2012


[edit]

mastrave

http://mastrave.org
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.

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" (version), 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.





Licensing

License

Verified by

Verified on

Notes




Leaders and contributors

Contact(s)Role
Daniele de Rigo Project leader


Resources and communication

AudienceResource typeURI
Expert users, Developers of derived packagesVCS Repository Webviewhttp://cvs.savannah.gnu.org/viewvc/mastrave/?root=mastrave
Scientists, Research teams interested in the Mastrave research programSupporthttp://mastrave.org/research.html
Users (e.g. environmental scientists, computational science modelers,...)Forumhttp://identi.ca/group/mastrave
Savannah (Ref)https://savannah.nongnu.org/projects/mastrave


Software prerequisites

KindDescription
Required to useBASH shell version 4.x
Required to useGNU Octave version 3.2.x
Weak prerequisiteGNU Prolog version 1.3.x or SWI-Prolog version 5.8.x (only development branch)
Weak prerequisiteGNU Compiler Collection version 4.4.x
Required to useGNU Sed version 4.2.x
Weak prerequisitePHP version 5 (only development branch)




Entry








"Project leader" is not in the list (Maintainer, Contributor, Developer, Sponsor, Unknown) of allowed values for the "Role" property.


"Users (e.g. environmental scientists" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property."computational science modelers" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property."...)" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property.


"Expert users" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property."Developers of derived packages" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property.


"Users (e.g. environmental scientists" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property."computational science modelers" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property."...)" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property.


"Scientists" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property."Research teams interested in the Mastrave research program" is not in the list (General, Help, Bug Tracking, Support, Developer) of allowed values for the "Resource audience" property.





















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.


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.