- To provide the most
comprehensive JavaTM library for the scientific
- To create synergy between all
sciences (e.g. math, physics, sociology, biology, astronomy,
economics, etc.) by integrating them into a single architecture.
- To provide the best on-line
services (webstart) for scientific calculations and
- Implementation of unitsofmeasurement.org services
coordinates module compliant with
specifications for the development and deployment of geographic applications.
- A rigourous mapping of mathematical
(e.g. Group, Ring, Field, VectorSpace ) to Java interfaces.
linear algebra module, which includes a first (and I believe unique)
class capable of resolving linear system of equations involving
any kind of elements (e.g. Complex, ModuloInteger, RationalFunctions)
- A functions
module for symbolic calculations and analysis.
- Different types of numbers
such as real
numbers of arbitrary and guaranteed precision, or the always
- Support for exact or arbitrary precision
(also strongly typed).
- Support for Standard , Relativistic ,
High-Energy , Quantum and Natural physical
- A monetary module
for precision-guaranteed calculations and currencies conversions.
JScience version 5.0 migration to java.net started (to be completed by the end of the week)
A JRE 1.4 compatible binary is
also available here (Version 3.2.0)
Tutorial and Code Examples
JScience is for:
JScience binary includes the latest Javolution classes for the J2SE 1.5+ platform.
- Low-Level Concurrency:
To take advantage of multi-core processors automatically.
Our benchmark indicates that on a dual-processors
are the fastest around (for a pure Java library).
- Stack allocation:
To reduce garbage collection, decrease memory footprint and increase scalability.
- Real-Time Behavior and Compliance:
JScience can safely be used with
RTSJ VMs without resulting into memory clashes or illegal access exceptions.
Fastest XML marshalling/unmarshalling around!
- Easy and type-safe configuration management with the Configurable class
|JScience is composed of several OSGi modules
(jscience-mathematics, jscience-physics, etc.)
parameters are loaded from system properties at start-up (e.g.
would disable concurrency).
Here are the benchmark results
on a Dual-Core CPU (T2050) @ 1.60 GHz running Windows XP.
|JScience modules are
free; permission to use, copy,
modify, and distribute these modules is freely granted, provided
that copyright notices are preserved.
Additional packages for 2011:
- org.jscience.mathematics.transforms (FFT)
- and more...
Feel free to let us know if you are interested in developping
new packages. It is very easy:
New packages are submitted by entering an enhancement issue at
java.net and by attaching your code to the issue. Your code will then get reviewed, hopefully approved and integrated.
- Document well
- Integrate with others packages (e.g. physical measures,
mathematics numbers, functions etc..)
- License your code under the JScience BSD License.
- Conform to our Coding Standard
- Subsribe to the firstname.lastname@example.org mailing list
- June 20-25, 2011: JScience 5.0
Three initial modules released: mathematics, physics and economics
- October 3, 2007: JScience 4.3/4.4
JavaWorld Article: Introduction to JSR-275: Measures and Units
- Added Decimal [4.3.0] (renamed from DecimalMeasure) [4.4.0]
- Added Vector [4.3.0] (renamed from VectorMeasure) [4.4.0]
- Fixed issues:
- August 27, 2007: JScience 4.2
JSR-275 Draft Review Actions:
- Add conversion method to Measure class:
- Add Measure factory method for
- Provide convenience method
MeasureFormat (with direct support for CompoundUnit)
- Unit converters A and B are equals if
A.concatenate(B.inverse()) is identity.
- Unit.asType(Class) raises a ClassCastException when dimensions mismatch.
- June 12, 2007: JScience 4.1
Fixed Issue 52 (matrix multiplication) [4.1.2]
Upgraded to the latest Javolution V5.1 [4.1.1]
Added FloatingPoint numbers of fixed arbitrary precision
Reference implementation for the JSR-275 : Measures and Units
Refactored package/classes to use singular form,
org.jscience.physics.amount.Amount (to avoid name clash with
Support for dense or sparse vectors.
Our benchmark indicates that on
dual-core processors our
are the fastest around (for a pure Java library), by about 2x!
- October 5, 2006: JScience 3.2
JSR-275 new packaging (javax.measure.*)
Binary for 1.4 (created using Retroweaver)
- July 15, 2006 : JScience 3.1.6
Updated/corrected physical constants
(CODATA 2002) [3.1.3]
RationalConverter for exact unit conversion [3.1.0]
Automatic removal of terms with zero coefficients for polynomials [3.1.0]
Fixed defects 27, 28, 29 (java.net issues database) [3.1.0]
- March 2, 2006 : JScience 3.0
Major upgrade of the library to leverage JDK 1.5 class paramaterization capabilities.
Rigourous mapping of mathematical structures (e.g. Group, Ring, Field, etc.)
Fixed defects 17, 19, 20, 21, 25 (java.net) [3.0.2]
Added new quantities for flow rate and viscosity [3.0.1]
- October 11, 2005 : JScience 2.0
Javolution classes included into the JScience binary (.jar)
- January 26, 2005: JScience 1.0
Upgrade to Javolution 2.2 [1.0.3]
Upgrade to Javolution 2.0 [1.0.2]
Upgrade to Javolution 1.1 [1.0.1]
Spin-off of Java(TM) Addition to Default Environment [1.0.0]