The hardest thing in the world to understand is the income tax (Albert Einstein)
Our Vision
  • To provide the most comprehensive JavaTM library for the scientific community.

  • 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 visualizations.

Current Library Modules
  • Reference Implementation (RI) for JSR-275: javax.measure.* (Latest Draft Specification).
  • A coordinates module compliant with OGC/ISO specifications for the development and deployment of geographic applications.
  • A rigourous mapping of mathematical structures (e.g. Group, Ring, Field, VectorSpace ) to Java interfaces.
  • A linear algebra module, which includes a first (and I believe unique) parameterized matrix 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 exact rational numbers.
  • Support for exact or arbitrary precision measurements (also strongly typed).
  • Support for Standard , Relativistic , High-Energy , Quantum and Natural physical models.
  • A monetary module for precision-guaranteed calculations and currencies conversions.
JScience version 4.3.1 - October 4, 2007
A JRE 1.4 compatible binary is also available here (Version 3.2.0)

Usage

Tutorial and Code Examples

JScience is for:

  • Low-Level Concurrency: To take advantage of multi-core processors automatically. Our benchmark indicates that on a dual-processors our Matrix<Float64> or Matrix<Complex> multiplications 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.
  • Persistency/Networking: Fastest XML marshalling/unmarshalling around!
  • Easy and type-safe configuration management with the Configurable class
JScience binary includes the latest Javolution classes for the J2SE 1.5+ platform.
JScience core library (jscience.jar) ) is self-executable for versioning, testing and benchmark purpose.

java -jar jscience.jar version (shows version information)
java -jar jscience.jar test (performs self-tests)
java -jar jscience.jar perf (runs benchmark)

Note: Configuration parameters are loaded from system properties at start-up (e.g. -Djavolution.context.ConcurrentContext#MAXIMUM_CONCURRENCY=0 would disable concurrency).

Here are the benchmark results on a Dual-Core CPU (T2050) @ 1.60 GHz running Windows XP.
JScience core modules are free; permission to use, copy, modify, and distribute these modules is freely granted, provided that copyright notices are preserved.
Optional modules (none currently) may be covered by different licencing agreements.
Coming in 2007:

Additional core modules for 2007:

  • org.jscience.mathematics.transforms (FFT)
  • org.jscience.physics.nuclear
  • org.jscience.mathematics.integration
  • org.jscience.computing.geneticAlgorithms
  • org.jscience.cognitive.neural-networks
  • org.jscience.statistics.randomizers
  • org.jscience.astronomy.ephemeris
  • org.jscience.history.calendars
  • org.jscience.chemistry.elements
  • org.jscience.biology.molecules
  • and more...

Feel free to let us know if you are interested in developping new modules. There are very few rules:

  • Document well
  • Integrate with others modules (e.g. physical measures, mathematics numbers, functions etc..)
  • Respect module ownership (changes to others packages than yours must be approved).
  • Conform to our Coding Standard Addendum
To participate: First register as "Observer" to http://jscience.dev.java.net , then send an e-mail with your proposal to dev@jscience.dev.java.net upon acceptance you are granted a "Developer" role. You might also want to subscribe to the DEV mailing list in order to comment on others proposals (even if you are not a developer).
Links
History
  • October 3, 2007: JScience 4.3
    JavaWorld Article: Introduction to JSR-275: Measures and Units
    1. Added DecimalMeasure [4.3.0]
    2. Added VectorMeasure [4.3.0]
    3. Fixed issues: 61 [4.3.1], 32, 33, 34, 38, 39, 41, 55, 58, [4.3.0]
  • August 27, 2007: JScience 4.2
    JSR-275 Draft Review Actions:
    1. Add conversion method to Measure class:Measure.to(Unit<Q> unit)
    2. Add Measure factory method for double[] and BigDecimal
    3. Add SystemOfUnits class.
    4. Rename Unit.getSystemUnit() to Unit.getStandardUnit()
    5. Provide convenience method Unit.alternate(String)
    6. Add MeasureFormat (with direct support for CompoundUnit)
    7. Provide UnitFormat.getInstance() and UnitFormat.getUCUMInstance()
    8. Unit converters A and B are equals if A.concatenate(B.inverse()) is identity.
    9. 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.measure.Measure renamed org.jscience.physics.amount.Amount (to avoid name clash with javax.measure).
    Support for dense or sparse vectors. Our benchmark indicates that on dual-core processors our Matrix<Float64> or Matrix<Complex> multiplications 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]
    Added 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]

Comments : Mailing Lists
Project Owner : Jean-Marie Dautelle
Revision : October 4, 2007
Java is a trademark of Sun Microsystems, Inc
Designed by Ventro