|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||
See:
Description
| Interface Summary | |
| Arithmetical | Interface to define certain standard Arithmetical accessor methods. |
| Arithmutable | This interface defines various arithmetical mutating methods. |
| Divisible | Interface to define Divisible arithmetical operations. |
| Estimable | The public interface Estimable defines the methods which allow an object to maintain a visible, up-to-date estimate of its value for debugging purposes. |
| Fuzzy | This interface specifies the methods which characterize a fuzzy value: getBoundAbs, getBound, getModel. |
| FuzzyMutable | This interface specifies the methods which allow setting fuzzy data: setBoundAbs, setBoundRel, setModel. |
| FuzzyPresentable | This interface defines operations required for presenting fuzzy objects. |
| Imaginable | Imaginable: the interface which defines complex operations. |
| Integral | Interface to define Integral operations. |
| Measurable | This interface specifies the methods which characterize a measurable (i.e. |
| Millable | This interface is implemented by objects which can be operated on by a mill, i.e. |
| Mutable | This interface is used to define whether an object is mutable,
that is to say it has non-final instance fields with mutator methods. Note that any object which is mutable cannot properly (and safely) be copied other than by cloning (this is a fact of Java life). Objects which are themselves immutable but which reference Cloneable objects must implement Cloneable and the clone method must clone any referenced instances which are Cloneable. |
| Normalizable | This interface defines the operation which can be invoked on an object to "normalize" it. |
| Transcendental | This interface models the functions necessary for evaluating transcendental functions. |
| Trigonometrical | This interface defines trigonometrical operations. |
| Class Summary | |
| Approximation | This Class approximates a value using an immutable double-precision value. |
| BaseNumber | Abstract (scalar) numerical class from which to derive other concrete classes. |
| BaseUnit | This abstract class represents, in its most primitive form, a unit of the Systeme International (SI). |
| Complex | Representation of a Complex Number |
| Dimensions | The public class Dimensions represents pure dimensional information - no scaling or other information. |
| DivisibleMutable | Interface to define Mutating Divisible arithmetical operations. |
| Expression | Class to manage a mathematical expression. |
| FlatUnit | The public class FlatUnit is used to describe a Measurable which has been flattened out so that all its dimensions and its scale are readily apparent. |
| FuzzInt | This class extends a WholeNumber by adding fuzzy parameters. |
| IntegerPresentation | Presentation class to deal with integral objects in radix 10. |
| Item | Abstract base class from which to derive other more concrete classes. |
| JQuantity | This class represents a quantity, that is to say a value and its units. |
| JQuantityPresentation | This class is a string-component representation of a JQuantity. |
| Loader | This public class is used to populate the JQuantity system at run-time with various definitions of units, etc. |
| Manifest | This class defines a "manifest" constant (a whole number which cannot be changed). |
| Mill | This class is responsible for evaluating operations on Presentable objects. |
| MillFactory | Factory class for Mills. |
| MutableNumber | Abstract class from which to derive other concrete classes of mutable numbers. |
| NumberPresentation | Public class used primarily for the output of instances of Rational. |
| Operator | This class defines operators in the context of SymbolicPresentations and their Presentable counterparts: Expressions. |
| PresentableFactory | Factory class for creating Presentables from double or long values (the preferred method of creating Presentables is to start with a String, create a Presentation using an implementer of PresentationFactoryInterface, and then turn that into a Presentable). |
| PresentationFactory | Factory class for Presentations. |
| QuantityPresentation | Presentation class to deal with quantity objects. |
| Rational | Public class to represent precise rational numbers. |
| SiUnit | This class represents, in its most primitive form, a unit of the Systeme International (SI). |
| SymbolicPresentation | Class to model the presentation of symbolic text, for example in a mathematical formula. |
| SystemFlag | The immutable class SystemFlag represents a system of units. |
| Units | This class extends UnitsFoundation by adding instance fields: _A, _B, _PowerA, _PowerB, _Scale, _Offset and _System. |
| UnitsFoundation | The public abstract class UnitsFoundation is the base class from which the other Units (Measurable) classes are derived. |
| UnitsName | The class UnitsName is used to identify units. |
| UnitsTable | This class extends HashMap to provide a table of units values. |
| Value | This class represents a Rational which may be factored in some way. |
| ValuePresentation | Presentation class to deal with value objects. |
| WholeNumber | This class is a logical extension of the BigInteger class, but is an actual extension of MutableNumber. |
| Exception Summary | |
| Expression.ExpressionException | Static class to define an exception encountered when parsing a formula. |
| InvalidOperandException | A checked exception intended to be internal to the JQuantity package, which indicates that when a mathematical operation A op B is invoked, the class of B is not valid for the operation on A. |
| JQuantityException | This exception class is used to report problems in the JQuantity package. |
JQUANTITY Framework Project.
Copyright (C) 2002, 2003 Rubecula Software.
This library is free software; you can redistribute it and/or modify it
under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 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 Lesser
General Public License for more details. You should have received a copy
of the GNU Lesser General Public License along with this library; if not,
write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
Boston, MA 02111-1307 USA
CVS Version: $Revision: 1.7 $
The following text was provided to SourceForge to describe this project:
The purpose of this project is to make available a set of Java classes which enable end users and programmers to make scientific calculations resulting in either exact quantities or quantities with known (bounded) errors.
Previously developed in the form of an end-user applet supported by beans, this project will remodel the classes for more general usage including end-user usage as a servlet or SOAP-enabled RPC.
The primary class is JQuantity. An instance of JQuantity includes the actual value (i.e. the best approximation of the value), the current precision (error bounds) and the units.
Numbers may be real or complex. JQuantity calculations use a method of lazy evaluation of transcendental-function-based quantities which either reduces or eliminates possible errors. Non-transcendental quantities are represented as rational numbers. Non-zero errors, where needed, can be characterized as uniform or Gaussian.
Methods allow representation of a JQuantity in the most appropriate text form, given a user-preferred system of units.
An extensible library of standard constants is provided. A JQuantity stack (of semi-infinite size) is provided which supports most of the standard mathematical functions. Non-supported esoteric functions can be added by accessing other calculator programs, e.g. unix calc, or by simply using the macro programming capability.
For usage as a serious online calculator for end-users, a swing-based applet class is provided which allows customization and programmability.
The applet will be extended to allow infix operations in addition to the current RPN operations.
Here are some of the tenets of the philosophy behind the design and development
of JQuantity:
The following is an introduction to the major classes and interfaces of the jquantity package. Use it as a starting point and/or as an adjunct to the javadoc. However, if there are discrepancies, then the javadoc must of course take should be considered definitive.
Before describing the numerical classes proper, it is important to mention two (co-) utility classes (in the util package):
Following are descriptions of the significant jquantity classes.
Last Updated: 2003-10-16
|
||||||||||
| PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES | |||||||||