jscl-meditor - java symbolic computing library and mathematical editor

News

Version 3.1
MathPiper active fork of Yacas
Jasymca Symbolic Calculator for Java
SymPy Python library for symbolic mathematics
Click here to launch meditor via java web start
Version 3.0 : meditor adopts a pluggable engine architecture. Currently, beside the standard JSCL library, packages for the following projects are provided:

JAS Java Algebra System
HartMath Java Computer Algebra Tool
MathEclipse Small computer algebra server written in Java
Omath open computer algebra system
Yacas Yet Another CAS

There is also an experimental, Scala-based engine named ScAS. Any other symbolic package written for Java (or one of its scripting languages) could be added, to what is now thought as an open plateform for Java computer algebra, in the spirit of the Sage project.

Project description

The goal of this project is to provide a java symbolic computing library with a mathematical editor front-end. There are several computer algebra systems available on the market, most of them developed in other languages, mainly C/C++ and Lisp. But the benefits of using java in symbolic computation are great. Aside from being widely used and to comply with various standards, this language has two features of concern : readability and portability.

Regarding readability, the goal is to produce a code as nice and short as the pseudo-code found in textbooks or research papers. As an illustration, here is what the Euclidean algorithm would look like:

	Polynomial gcd(Polynomial p, Polynomial q) {
while(q.signum()!=0) {
Polynomial r=p.remainder(q);
p=q;
q=r;
}
return p;
}

It entails a dedicated development effort. This choice of clear coding, enabled by java, may have consequences in terms of performance compared to other software. But it could be worth the commitment, in the respect that understanding an algorithm just by looking at the code is made possible. Object-orientation allows to hide ugly optimizations behind a clean, easy to use interface.

Some may doubt however that java will ever be as clear as C++ because it doesn't provide operator overloading, which means that a+b is written a.add(b), and will remain as such. The interested reader can look at the on-going discussion on the matter at Sun.

As for portability, it means that a lot of platforms are available at no cost, from powerful unix workstations or servers to handheld devices. To make it possible, the project is split in two parts : the engine (jscl) and the mathematical editor front-end (meditor). The engine is usable interactively or in batch mode from a java shell interpreter (like BeanShell for instance), or as a java library in any third-party application.

The front-end has currently two implementations (see below). Among others, it is intended for taking course notes. With it, a student can perform the calculations asked by their teacher fast and reliably. The plain text format should make the exchange of notes easy. The produced worksheets can be published on-line thanks to the Copy to Wiki feature, for instance on meditorworld.

Implementations

The current implementations of the front-end are as follows:

There was a special effort to make the palm front-end powerful enough for school use, by compiling the software into native code with Jump.

Symbolic capabilities

The symbolic capabilities are currently:

Download

Go to the Project summary page.

Installation

Desktop version (v3.0 onward)

Extract the meditor3.0.zip archive into any appropriate directory on your hard drive. It will create a "meditor3.0" directory. Change dir to it.

To run meditor, add the bin directory to your path, give bin/meditor execution privilege (unix), then : meditor [file.txt]

Once the application is up, you may go to the docs directory and try the examples it contains.

PalmOS version (up to v2.3)

Go to the "palm" subdirectory. Upload the editor.prc into the device.

To have the data persisted, create an entry in the memopad with the word "meditor" (+return) on the first line. The memo.csv that you can optionally install (via your desktop application import) has such an entry and several other memos containing the documentation.

Dependencies

jeuclid 3.1.4 (included)
fop 0.95 (included)
batik 1.7 (included)
xerces 2.7.1 (included)
xsltml 2.1.2 (included)
beanshell 2.0b4 (included)

Papers

Symbolic script programming for Java (2009, with H. Kredel)
How to turn a scripting language into a domain specific language for computer algebra (2008, with H. Kredel)

Acknowledgements

Thanks to Klaus Hartlage, Yves Noyer, Jeffry Madura, Eric Smith, Sergio Melas, Andrea Boright, Ross Green, Nicolas Rosillo, Marten van Wezel, Toyin Akin, Philippe d'Oreye, Sione Palu, Michael Braginsky, Mike Thomas, David Schneider, Oleg Volkov, Markus Hohenwarter, Dimitri Pissarenko, Eckhard Hitzer, Daniel Fontijne, Alfredo Vianna, Oliver Pretzel, Axel Kramer, Bob Orchard.

Related projects

JScience Java Tools and Libraries for the Advancement of Sciences
GeoGebra dynamic mathematics software that connects geometry, algebra and calculus
MVT Mathematical Visualization Toolkit
GCalc mathematical graphing system in Java
MathDrag'n Symbolic Equation Manipulator
MTAC - More than a Calculator

Contact

You can send your reactions to raphael.jolly@free.fr. For bug reports and support requests, you've got tools on the Project summary page.

Copyright

The GNU General Public License

Get jscl-meditor at SourceForge.net.
Fast, secure and Free Open Source software downloads
last updated on mon Jun 15 2009