My favorites | Sign in
Project Home Downloads Wiki Issues Source
Project Information
Members
Links

MCAS is a computational algebra and plot system based on constant interval arithmetics. It is designed to make accurate numerical computations and visualizations of mathematical and field specific functions and relations.

News

Features

Below is a list of implemented features and design goals of MCAS project:

  • accurate mathematical engine based on constant interval arithmetics
  • client-server architecture, fully distributed over the network using sockets
  • several user interfaces, at least using Python with GTK support and a web client
  • flexible and multi-threaded virtual machine, with mathematics oriented bytecode
  • library of mathematical and field specific functions
  • full POSIX compliance

Motivation

Computations involving floating point numbers, nevertheless what precision is used, almost always generate some round-off error and uncertainty to the computed results. Usually the error could be estimated or even reduced by using better algorithms. However, there are also situations in which the complexity of the studied problem makes all known methods unsatisfactory or unusable.

Most tools in the market use classical computational model, where both argument and solution are single floating-point or multi-precision numbers. When doing computations on arbitrary expression trees, this can give totally different value than expected. This means we can do only precise calculations but not accurate ones. By the term accurate I mean solutions proven to be analytically correct.

Also, when using single points as fundamental computational basis, it is possible to plot graphs only using methods based on sampling and its enhancements. No matter how they were advanced and complicated, they never will result in a proper graph. Of course for simple functions like polynomials or exponential this is enough. But consider plotting sin(1/x), when x is going towards zero. All methods based on sampling fail, as there is infinite number of oscillations, and the results seen in main stream CAS software and plot libraries are poor and don't match the actual plot.

This is the main motivation for implementing interval arithmetics in MCAS, giving the public a tool which is not only precise as are the other tools in the market, but most of all, accurate, to prove that the exact solution to the problem belongs to the computed interval. Besides the accuracy, new plotting methods can be derived form the interval approach, which can exponentially reduce the number of function evaluations needed.

Design

MCAS system consists of three main parts, which include mathematical libraries, server-side virtual machine and client-side user interfaces. The communication between libraries and VM is based on dynamic linking (both compile time and runtime binding) and between user interfaces and VM Unix sockets are being used for compatibility reasons.

Mathematical Libraries

The most important library is libivl, which implement the fundamentals of constant interval arithmetics for single-dimensional and complex numbers and several algorithms based on those fundamentals:

  • efficient arithmetics and comparisons based on triple-valued logic
  • elementary mathematical functions (with argument reduction in trigonometric case)
  • support for partial and non-continuous functions, and for infinities
  • property tracking mechanisms (especially domain and continuity tracking)
  • interval methods for differentiation, integration, optimization and systems solving

This library uses extensively MPFR library for numerical computations purpose and is designed to be its natural extension. This means MPFR users will see it simple to use libivl as a standalone interval computations library.

Virtual Machine

User Interfaces

Download

To obtain the latest release of MCAS check Featured Downloads section. You can also use the SVN repository through Source tab or by executing following command:

svn checkout http://mcas.googlecode.com/svn/trunk/ mcas

Installation

Compiling and installing MCAS is as simple as executing following code:

cd mcas
make
make install

Make sure to install GMP and MPFR libraries first. You can always build only specified parts of MCAS. If you would like to build, for example, libivl only, then execute:

make libivl

Author

MCAS is been developed by Mateusz Paprocki.

Powered by Google Project Hosting