IAsolver 0.1beta1: 10/97

The Brandeis Interval Arithmetic Constraint Solver (10/97)


PUSH THE "Show IAsolver" BUTTON BELOW TO START THE IASOLVER APPLET

You need a java-enabled web brower to run the applet. Rated Top 5% WebApplet by JARS

Featured Applet for the week of 15-22 August 1997 in the Gamelan Java Archive

Source Code is now Available

The source code for IAsolver is available for browsing in this directory, or you can download this gzipped tar file (414K) directly. This source code is being released as three libraries: ia_math, ia_parser, and ia_solver. All of these are currently being distributed using the GNU LGPL copyleft for libraries.


Portability

This applet has reportedly run successfully on the following configurations:

There have been some reports of problems under some Microsoft and Linux operating systems. If you do have a problem, I would greatly appreciate it if you could send me email at tim@cs.brandeis.edu describing the machine, browser, operating system and problem, and I'll post it here and try to work on it. Thanks.

Please be patient. It may take a few minutes to download this applet over the net. You can read the instructions and examples below while waiting for it to load!


Instructions

When the applet has been fully loaded onto your machine, a button labelled Show IAsolver will appear at the top left of this page. Pushing this button will open a new window on which you can enter and solve systems of arithmetic constraints using narrowing. If there are two or more variables in the constraint set, then you can use the Interval Arithmetic plotting feature to simultaneously view one or more projections of the solution set.

The main window of the solver contains an area for entering constraints, an area for viewing the current bounds on the variables, and several control buttons, as shown below:

NOTE: THE FOLLOWING IS JUST A GIF IMAGE.
THE REAL APPLET IS AT THE TOP LEFT OF THIS PAGE.


Examples of allowable constraints

The constraints must each end with a semicolon and are constructed from variable names and simple decimal numbers using the standard operators listed below. Some examples of valid constraints are:


SYNTAX

A Constraint is one of the following relations, where A,B are expressions: A=B, A<B, A>B, A!=B, A<=B, A>=B, V:=E The last is the assignment operator. It evaluates E using interval arithmetic, and binds the resulting interval to the variable V. The allowable expressions are defined below:

Commercial Interval Arithmetic Constraint Systems

If you need a more powerful interval arithmetic constraint solver you may be interested in the ALS Prolog implementation of CLP(BNR) which combines a powerful (and efficient) interval arithmetic constraint solver with a high quality Prolog compiler and it runs on almost every platform.

Cautions and Provisos

This software is experimental and you should use at your own risk. In particular, the current version is NOT sound since it relies on Java's underlying math library which is not proven to be accurate to the last bit. Please send any bug reports, suggestions, or comments to tim@cs.brandeis.edu The web page http://tigereye.cs.brandeis.edu/Applets/IAsolver2.html is a stripped down version of this page which has only the applet and a few comments.

The development of this applet was partially supported by NSF grant CCR-9403427.


IAsolver

Copyright (C) 1997 Timothy J. Hickey This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library 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 Library General Public License for more details.