Hi,

I'd be happy to contribute all or parts of an existing free collection 
library, and in the process move them over to the Apache license.

Some time ago I created an extensive collection library, and made it freely 
available (FreeBSD like).
Now I've moved on to other projects. The lib serves a certain community 
(high performance numerical analysis) well, is of production quality and 
contains no known bugs.
If some parts of it turn out to be useful more generally (within 
jakarta-commons), people should be able to go ahead and take advantage, and 
move relevant code over to jakarta. I will not be able to devote much time 
to it, but can assist.

The Colt distribution (http://nicewww.home.cern.ch/~hoschek/colt/index.htm) 
provides an infrastructure for scalable scientific and technical computing 
in Java. It contains, among others, efficient and usable data structures 
and algorithms for Off-line and On-line Data Analysis, Linear Algebra, 
Multi-dimensional arrays, Statistics, Histogramming, Monte Carlo 
Simulation, Parallel & Concurrent Programming.

Here are links to the pieces most likely to be of interest for jakarta 
collections.

* Templated Lists and Maps
         Dynamically resizing lists holding objects or primitive data types 
such as int, double, etc.
         All stuff is complementary, and not competing with java.util.*
         
http://nicewww.cern.ch/~hoschek/colt/V1.0.1/doc/cern/colt/list/package-summary.html
         
http://nicewww.cern.ch/~hoschek/colt/V1.0.1/doc/cern/colt/list/adapter/package-summary.html
         
http://nicewww.cern.ch/~hoschek/colt/V1.0.1/doc/cern/colt/map/package-summary.html

* Bitvectors and Bitmatrices
         
http://nicewww.cern.ch/~hoschek/colt/V1.0.1/doc/cern/colt/bitvector/package-summary.html

* Sorting
         Quicksorts, mergesorts and binary searches; complements 
java.util.Arrays.
         Generic sorting of arbitrary shaped data (for example multiple 
arrays) using a quicksort.
         All stuff is complementary, and not competing with java.util.*
         http://nicewww.cern.ch/~hoschek/colt/V1.0.1/doc/cern/colt/package-summary.html

Basic Design Goals:

* Efficiency. Routines are typically fast both due to the chosen algorithms 
and datastructures as well as due to careful implementation.

* User friendliness. To the casual user this is a high level object 
oriented toolkit, consisting of classes which directly provide
   most frequently needed functionality. Most users will never need to 
extend or modify any code.

* Safety. Most methods defensively check preconditions and throw 
appropriate exceptions. However, almost none of them are synchronized.


Most collections here hold primitive values rather than java.lang.Objects. 
As such
these classes may not fit well into the overall strategy of 
jakarta-collections?! Let me know.

For current licensing terms, see

         http://nicewww.cern.ch/~hoschek/colt/download/v1.0.1/download.htm

Caveat: A few classes depend on other stuff you may not want to drag in. 
AFAIK, none of this is a show stopper, because the affected methods are 
non-critical and can be deleted (setting elements of collection to high 
quality random numbers, ...). Some massaging will be unavoidable, though.

Wolfgang.


-----------------------------------------------------------------------
Wolfgang Hoschek      | e-mail: [EMAIL PROTECTED]
CERN IT Division      | phone:  +41 (22) 767 8089
European Organization | fax:    +41 (22) 767 7155
for Nuclear Research  |
-----------------------------------------------------------------------

Reply via email to