This is an automated email from the git hooks/post-receive script.

tille pushed a commit to branch master
in repository colt.

commit 3ccdfeec905fe2fa9fcefb784e441b366d136ba7
Author: Andreas Tille <[email protected]>
Date:   Sun Feb 22 20:44:11 2015 +0100

    Add latest status of SVN: 1.2.0+dfsg-2biolinux4
---
 debian/changelog                                   |  57 ++
 debian/compat                                      |   1 +
 debian/control                                     |  59 ++
 debian/copyright                                   |  39 +
 debian/get-orig-source                             |  33 +
 debian/libcolt-java-doc.javadoc                    |   1 +
 debian/libcolt-java.jlibs                          |   1 +
 debian/manifest                                    |   2 +
 .../build_without_aida_interface_defs.patch        | 948 +++++++++++++++++++++
 debian/patches/series                              |   2 +
 .../use_debian_packaged_concurrent_jar.patch       |  14 +
 debian/rules                                       |  23 +
 debian/source/format                               |   1 +
 debian/watch                                       |   4 +
 14 files changed, 1185 insertions(+)

diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..67cc383
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,57 @@
+colt (1.2.0+dfsg-2biolinux4) precise; urgency=low
+
+  * Attempt to build without src/hep/aida/*.java
+    See notes in patches/build_without_aida_interface_defs.patch
+
+ -- Tim Booth <[email protected]>  Tue, 22 Apr 2014 14:20:29 +0100
+
+colt (1.2.0+dfsg-2biolinux3) precise; urgency=low
+
+  * Rebuild for Ubuntu LTS/Bio-Linux
+
+ -- Tim Booth <[email protected]>  Wed, 02 Apr 2014 17:26:08 +0100
+
+colt (1.2.0+dfsg-2) unstable; urgency=low
+
+  * Upload to unstable
+    Closes: #720553
+  * cme fix dpkg-control
+  * anonscm in Vcs fields
+
+ -- Andreas Tille <[email protected]>  Fri, 23 Aug 2013 13:58:03 +0200
+
+colt (1.2.0+dfsg-1) experimental; urgency=low
+
+  * debian/copyright:
+     - DEP5
+     - Add Files-Excluded to document what was removed from original source
+  * debian/{control,rules}: use default java implementation
+    thanks for the patch to James Page <[email protected]>
+    Closes: #683528
+  * debian/control: Standards-Version: 3.9.4
+
+ -- Andreas Tille <[email protected]>  Mon, 17 Dec 2012 15:52:07 +0100
+
+colt (1.2.0~nojar-2) unstable; urgency=low
+
+  * debian/control:
+     - Pure Java is arch: all
+     - Standards-Version: 3.9.3 (no changes needed)
+  * debhelper 9 (control+compat)
+
+ -- Andreas Tille <[email protected]>  Tue, 19 Jun 2012 09:46:59 +0200
+
+colt (1.2.0~nojar-1) unstable; urgency=low
+
+  * Initial release (Closes: #656741)
+  * Remark: The package version "~nojar" was chosen in contrast to the
+    previous "~dfsg" to reflect that binary JAR files which are unneeded
+    are stripped from the upstream tarball to avoid more trouble with
+    licensing issues.  So the only issue with the explicte exclusion of
+    military applications remains and is the reason for upload to non-free.
+    However at least the final target beast-mcmc could go to contrib.
+    Remark2: I'm not sure what "military applications" actually means
+    without a proper definition and whether this license is applicable at
+    all.
+
+ -- Andreas Tille <[email protected]>  Tue, 24 Jan 2012 12:16:20 +0100
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..ec63514
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+9
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..68188a7
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,59 @@
+Source: colt
+Maintainer: Debian Med Packaging Team 
<[email protected]>
+Uploaders: Andreas Tille <[email protected]>
+Section: non-free/java
+Priority: optional
+Build-Depends: debhelper (>= 9),
+               javahelper (>=0.25),
+               default-jdk,
+               ant,
+               libconcurrent-java
+Standards-Version: 3.9.4
+Vcs-Browser: 
http://anonscm.debian.org/viewvc/debian-med/trunk/packages/libcolt-java/trunk/
+Vcs-Svn: svn://anonscm.debian.org/debian-med/trunk/packages/libcolt-java/trunk/
+Homepage: http://acs.lbl.gov/software/colt/
+
+Package: libcolt-java
+Architecture: all
+Depends: ${shlibs:Depends},
+         ${misc:Depends},
+         ${java:Depends}
+Recommends: ${java:Recommends}
+Description: scalable scientific and technical computing in Java
+ This distribution provides an infrastructure for scalable scientific
+ and technical computing in Java. It is particularly useful in the domain
+ of High Energy Physics at CERN: 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. It summons some of the best concepts, designs and
+ implementations thought up over time by the community, ports or improves
+ them and introduces new approaches where need arises. In overlapping
+ areas, it is competitive or superior to toolkits such as STL, Root,
+ HTL, CLHEP, TNT, GSL, C-RAND / WIN-RAND, (all C/C++) as well as  IBM
+ Array,  JDK 1.2 Collections framework (all Java), in terms of
+ performance, functionality and (re)usability. 
+
+Package: libcolt-java-doc
+Architecture: all
+Section: non-free/doc
+Depends: ${java:Depends},
+         ${misc:Depends}
+Recommends: ${java:Recommends}
+Description: scalable scientific and technical computing in Java (doc)
+ This distribution provides an infrastructure for scalable scientific
+ and technical computing in Java. It is particularly useful in the domain
+ of High Energy Physics at CERN: 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. It summons some of the best concepts, designs and
+ implementations thought up over time by the community, ports or improves
+ them and introduces new approaches where need arises. In overlapping
+ areas, it is competitive or superior to toolkits such as STL, Root,
+ HTL, CLHEP, TNT, GSL, C-RAND / WIN-RAND, (all C/C++) as well as  IBM
+ Array,  JDK 1.2 Collections framework (all Java), in terms of
+ performance, functionality and (re)usability. 
+ .
+ This package provides the documentation for the library
+
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..9a924ce
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,39 @@
+Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
+Upstream-Name: colt
+Upstream-Contact: Wolfgang Hoschek <[email protected]>
+Source: http://acs.lbl.gov/software/colt/
+Files-Excluded:
+    *concurrent*
+    *.jar
+
+Files: src/cern/*
+Copyright: © 1999 CERN - European Organization for Nuclear Research
+             Wolfgang Hoschek <[email protected]>
+License: Colt_License_Agreement
+    Permission to use, copy, modify, distribute and sell this software and its
+    documentation for any purpose is hereby granted without fee, provided that
+    the above copyright notice appear in all copies and that both that
+    copyright notice and this permission notice appear in supporting
+    documentation. CERN makes no representations about the suitability of this
+    software for any purpose. It is provided "as is" without expressed or
+    implied warranty.
+
+Files: src/hep.aida.*
+Copyright: © 2004 Pavel Binko, Dino Ferrero Merlino, Wolfgang Hoschek, Tony 
Johnson, Andreas Pfeiffer, and others.
+License: LGPL-no-military
+ hep.aida.* is non-free according to the information in xdocs/license.xml:
+ .
+  Permission to use and/or redistribute this work is granted under the terms of
+  the LGPL License, with the exception that any usage related to military
+  applications is expressly forbidden. The software and documentation made
+  available under the terms of this license are provided with no warranty.
+ .
+ On Debian systems, you can read the full text of the GNU Lesser General Public
+ License in ‘/usr/share/common-licenses/LGPL’.
+
+Files: debian/*
+Copyright: © 2012 Andreas Tille <[email protected]>
+License: LGPL
+ On Debian systems, you can read the full text of the GNU Lesser General Public
+ License in ‘/usr/share/common-licenses/LGPL’.
+
diff --git a/debian/get-orig-source b/debian/get-orig-source
new file mode 100755
index 0000000..5d91f9a
--- /dev/null
+++ b/debian/get-orig-source
@@ -0,0 +1,33 @@
+#!/bin/sh
+# get source for libcolt-java and remove unneeded jars
+
+set -e
+NAME=`dpkg-parsechangelog | awk '/^Source/ { print $2 }'`
+
+if ! echo $@ | grep -q upstream-version ; then
+    VERSION=`dpkg-parsechangelog | awk '/^Version:/ { print $2 }' | sed 
's/\([0-9\.]\+\)-[0-9]\+$/\1/'`
+else
+    VERSION=`echo $@ | sed "s?^.*--upstream-version \([0-9.]\+\) 
.*${NAME}.*?\1?"`
+    if echo "$VERSION" | grep -q "upstream-version" ; then
+        echo "Unable to parse version number"
+        exit
+    fi
+fi
+
+UPSTREAMTAR=${NAME}-${VERSION}.tar.gz
+
+mkdir -p ../tarballs
+cd ../tarballs
+mv ../${UPSTREAMTAR} .
+tar -xzf ${UPSTREAMTAR}
+cd ${NAME}
+
+# Remove concurrent which is just packaged for Debian
+find . -name "*concurrent*" -delete
+
+# Remove unneeded JARs
+find . -name "*.jar" -delete
+
+cd ..
+GZIP="--best --no-name" tar --owner=root --group=root --mode=a+rX -czf 
"$NAME"_"$VERSION"~nojar.orig.tar.gz "${NAME}"
+rm -rf "${NAME}"
diff --git a/debian/libcolt-java-doc.javadoc b/debian/libcolt-java-doc.javadoc
new file mode 100644
index 0000000..2f83124
--- /dev/null
+++ b/debian/libcolt-java-doc.javadoc
@@ -0,0 +1 @@
+doc /usr/share/doc/libcolt-java
diff --git a/debian/libcolt-java.jlibs b/debian/libcolt-java.jlibs
new file mode 100644
index 0000000..8c5987b
--- /dev/null
+++ b/debian/libcolt-java.jlibs
@@ -0,0 +1 @@
+lib/*.jar
diff --git a/debian/manifest b/debian/manifest
new file mode 100644
index 0000000..288f01d
--- /dev/null
+++ b/debian/manifest
@@ -0,0 +1,2 @@
+/usr/share/java/colt.jar:
+ Class-Path: /usr/share/java/concurrent.jar
diff --git a/debian/patches/build_without_aida_interface_defs.patch 
b/debian/patches/build_without_aida_interface_defs.patch
new file mode 100644
index 0000000..06aac51
--- /dev/null
+++ b/debian/patches/build_without_aida_interface_defs.patch
@@ -0,0 +1,948 @@
+This patch forcefully rips out references to all the I*.java interface files
+that are not DFSG-free, having a "no military use" restriction.
+
+See: 
http://lists.alioth.debian.org/pipermail/debian-med-packaging/2014-April/025987.html
+
+However, it is ambiguous whether the files uder hep/aida/ref and hep/aida/bin 
are also
+under the non-free license.  Only Wolfgang Hoschek can answer this question 
and he has been
+sadly silent so far.  So I don't know if this patch actually solves anything 
or not.
+
+The code is (or should be) functionally equivalent since the interface defs 
contain no actual code,
+only function and class prototypes, and the process of removing them was 
mostly a matter of
+find-and-replace of the interface names with the implementing class names.  
However the code
+is certainly less neat after this patch - especially as I forced VariableAxis 
to inherit from
+FixedAxis - and also any code which links against Colt and references the I* 
classes will fail
+to build and will require patching too.
+
+-- Tim Booth <[email protected]>, April 2014
+
+--- a/src/hep/aida/ref/Util.java
++++ b/src/hep/aida/ref/Util.java
+@@ -1,8 +1,5 @@
+ package hep.aida.ref;
+ 
+-import hep.aida.IHistogram1D;
+-import hep.aida.IHistogram2D;
+-
+ /**
+  * Convenient histogram utilities. 
+  */
+@@ -15,7 +12,7 @@
+       /** 
+        * Returns the index of the in-range bin containing the maxBinHeight().
+        */ 
+-      public int maxBin(IHistogram1D h)
++      public int maxBin(Histogram1D h)
+       {
+               int maxBin = -1;
+               double maxValue = Double.MIN_VALUE;
+@@ -31,7 +28,7 @@
+       /** 
+        * Returns the indexX of the in-range bin containing the maxBinHeight().
+        */ 
+-      public int maxBinX(IHistogram2D h)
++      public int maxBinX(Histogram2D h)
+       {
+               double maxValue = Double.MIN_VALUE;
+               int maxBinX = -1;
+@@ -51,7 +48,7 @@
+       /** 
+        * Returns the indexY of the in-range bin containing the maxBinHeight().
+        */ 
+-      public int maxBinY(IHistogram2D h)
++      public int maxBinY(Histogram2D h)
+       {
+               double maxValue = Double.MIN_VALUE;
+               int maxBinX = -1;
+@@ -71,7 +68,7 @@
+       /** 
+        * Returns the index of the in-range bin containing the minBinHeight().
+        */ 
+-      public int minBin(IHistogram1D h)
++      public int minBin(Histogram1D h)
+       {
+               int minBin = -1;
+               double minValue = Double.MAX_VALUE;
+@@ -87,7 +84,7 @@
+       /** 
+        * Returns the indexX of the in-range bin containing the minBinHeight().
+        */ 
+-      public int minBinX(IHistogram2D h)
++      public int minBinX(Histogram2D h)
+       {
+               double minValue = Double.MAX_VALUE;
+               int minBinX = -1;
+@@ -107,7 +104,7 @@
+       /** 
+        * Returns the indexY of the in-range bin containing the minBinHeight().
+        */ 
+-      public int minBinY(IHistogram2D h)
++      public int minBinY(Histogram2D h)
+       {
+               double minValue = Double.MAX_VALUE;
+               int minBinX = -1;
+--- a/src/cern/colt/matrix/doublealgo/Statistic.java
++++ b/src/cern/colt/matrix/doublealgo/Statistic.java
+@@ -317,7 +317,7 @@
+ @return the histogram containing the cube.
+ @throws IllegalArgumentException if <tt>x.size() != y.size() || y.size() != 
weights.size()</tt>.
+ */
+-public static hep.aida.IHistogram2D cube(DoubleMatrix1D x, DoubleMatrix1D y, 
DoubleMatrix1D weights) {
++public static hep.aida.ref.Histogram2D cube(DoubleMatrix1D x, DoubleMatrix1D 
y, DoubleMatrix1D weights) {
+       if (x.size() != y.size() || y.size() != weights.size()) throw new 
IllegalArgumentException("vectors must have same size");
+       
+       double epsilon = 1.0E-9;
+@@ -332,7 +332,7 @@
+       // since bins are right-open [from,to) we need an additional dummy bin 
so that the last distinct value does not fall into the overflow bin
+       if (distinct.size()>0) distinct.add(distinct.get(distinct.size()-1) + 
epsilon);
+       distinct.trimToSize();
+-      hep.aida.IAxis xaxis = new 
hep.aida.ref.VariableAxis(distinct.elements());
++      hep.aida.ref.VariableAxis xaxis = new 
hep.aida.ref.VariableAxis(distinct.elements());
+ 
+       // compute distinct values of y
+       y.toArray(vals);
+@@ -341,9 +341,9 @@
+       // since bins are right-open [from,to) we need an additional dummy bin 
so that the last distinct value does not fall into the overflow bin
+       if (distinct.size()>0) distinct.add(distinct.get(distinct.size()-1) + 
epsilon);
+       distinct.trimToSize();
+-      hep.aida.IAxis yaxis = new 
hep.aida.ref.VariableAxis(distinct.elements());
++      hep.aida.ref.VariableAxis yaxis = new 
hep.aida.ref.VariableAxis(distinct.elements());
+ 
+-      hep.aida.IHistogram2D histo = new 
hep.aida.ref.Histogram2D("Cube",xaxis,yaxis);
++      hep.aida.ref.Histogram2D histo = new 
hep.aida.ref.Histogram2D("Cube",xaxis,yaxis);
+       return histogram(histo,x,y,weights);
+ }
+ /**
+@@ -356,7 +356,7 @@
+ @return the histogram containing the cube.
+ @throws IllegalArgumentException if <tt>x.size() != y.size() || x.size() != 
z.size() || x.size() != weights.size()</tt>.
+ */
+-public static hep.aida.IHistogram3D cube(DoubleMatrix1D x, DoubleMatrix1D y, 
DoubleMatrix1D z, DoubleMatrix1D weights) {
++public static hep.aida.ref.Histogram3D cube(DoubleMatrix1D x, DoubleMatrix1D 
y, DoubleMatrix1D z, DoubleMatrix1D weights) {
+       if (x.size() != y.size() || x.size() != z.size() || x.size() != 
weights.size()) throw new IllegalArgumentException("vectors must have same 
size");
+       
+       double epsilon = 1.0E-9;
+@@ -371,7 +371,7 @@
+       // since bins are right-open [from,to) we need an additional dummy bin 
so that the last distinct value does not fall into the overflow bin
+       if (distinct.size()>0) distinct.add(distinct.get(distinct.size()-1) + 
epsilon);
+       distinct.trimToSize();
+-      hep.aida.IAxis xaxis = new 
hep.aida.ref.VariableAxis(distinct.elements());
++      hep.aida.ref.VariableAxis xaxis = new 
hep.aida.ref.VariableAxis(distinct.elements());
+ 
+       // compute distinct values of y
+       y.toArray(vals);
+@@ -380,7 +380,7 @@
+       // since bins are right-open [from,to) we need an additional dummy bin 
so that the last distinct value does not fall into the overflow bin
+       if (distinct.size()>0) distinct.add(distinct.get(distinct.size()-1) + 
epsilon);
+       distinct.trimToSize();
+-      hep.aida.IAxis yaxis = new 
hep.aida.ref.VariableAxis(distinct.elements());
++      hep.aida.ref.VariableAxis yaxis = new 
hep.aida.ref.VariableAxis(distinct.elements());
+ 
+       // compute distinct values of z
+       z.toArray(vals);
+@@ -389,9 +389,9 @@
+       // since bins are right-open [from,to) we need an additional dummy bin 
so that the last distinct value does not fall into the overflow bin
+       if (distinct.size()>0) distinct.add(distinct.get(distinct.size()-1) + 
epsilon);
+       distinct.trimToSize();
+-      hep.aida.IAxis zaxis = new 
hep.aida.ref.VariableAxis(distinct.elements());
++      hep.aida.ref.VariableAxis zaxis = new 
hep.aida.ref.VariableAxis(distinct.elements());
+ 
+-      hep.aida.IHistogram3D histo = new 
hep.aida.ref.Histogram3D("Cube",xaxis,yaxis,zaxis);
++      hep.aida.ref.Histogram3D histo = new 
hep.aida.ref.Histogram3D("Cube",xaxis,yaxis,zaxis);
+       return histogram(histo,x,y,z,weights);
+ }
+ /**
+@@ -494,7 +494,7 @@
+  * Fills all cells of the given vector into the given histogram.
+  * @return <tt>histo</tt> (for convenience only).
+  */
+-public static hep.aida.IHistogram1D histogram(hep.aida.IHistogram1D histo, 
DoubleMatrix1D vector) {
++public static hep.aida.ref.Histogram1D histogram(hep.aida.ref.Histogram1D 
histo, DoubleMatrix1D vector) {
+       for (int i=vector.size(); --i >= 0; ) {
+               histo.fill(vector.getQuick(i));
+       }
+@@ -505,7 +505,7 @@
+  * @return <tt>histo</tt> (for convenience only).
+  * @throws IllegalArgumentException if <tt>x.size() != y.size()</tt>.
+  */
+-public static hep.aida.IHistogram2D histogram(hep.aida.IHistogram2D histo, 
DoubleMatrix1D x, DoubleMatrix1D y) {
++public static hep.aida.ref.Histogram2D histogram(hep.aida.ref.Histogram2D 
histo, DoubleMatrix1D x, DoubleMatrix1D y) {
+       if (x.size() != y.size()) throw new IllegalArgumentException("vectors 
must have same size");
+       for (int i=x.size(); --i >= 0; ) {
+               histo.fill(x.getQuick(i), y.getQuick(i));
+@@ -517,7 +517,7 @@
+  * @return <tt>histo</tt> (for convenience only).
+  * @throws IllegalArgumentException if <tt>x.size() != y.size() || y.size() 
!= weights.size()</tt>.
+  */
+-public static hep.aida.IHistogram2D histogram(hep.aida.IHistogram2D histo, 
DoubleMatrix1D x, DoubleMatrix1D y, DoubleMatrix1D weights) {
++public static hep.aida.ref.Histogram2D histogram(hep.aida.ref.Histogram2D 
histo, DoubleMatrix1D x, DoubleMatrix1D y, DoubleMatrix1D weights) {
+       if (x.size() != y.size() || y.size() != weights.size()) throw new 
IllegalArgumentException("vectors must have same size");
+       for (int i=x.size(); --i >= 0; ) {
+               histo.fill(x.getQuick(i), y.getQuick(i), weights.getQuick(i));
+@@ -529,7 +529,7 @@
+  * @return <tt>histo</tt> (for convenience only).
+  * @throws IllegalArgumentException if <tt>x.size() != y.size() || x.size() 
!= z.size() || x.size() != weights.size()</tt>.
+  */
+-public static hep.aida.IHistogram3D histogram(hep.aida.IHistogram3D histo, 
DoubleMatrix1D x, DoubleMatrix1D y, DoubleMatrix1D z, DoubleMatrix1D weights) {
++public static hep.aida.ref.Histogram3D histogram(hep.aida.ref.Histogram3D 
histo, DoubleMatrix1D x, DoubleMatrix1D y, DoubleMatrix1D z, DoubleMatrix1D 
weights) {
+       if (x.size() != y.size() || x.size() != z.size() || x.size() != 
weights.size()) throw new IllegalArgumentException("vectors must have same 
size");
+       for (int i=x.size(); --i >= 0; ) {
+               histo.fill(x.getQuick(i), y.getQuick(i), z.getQuick(i), 
weights.getQuick(i));
+--- a/src/hep/aida/ref/AbstractHistogram2D.java
++++ b/src/hep/aida/ref/AbstractHistogram2D.java
+@@ -1,18 +1,14 @@
+ package hep.aida.ref;
+ 
+-import hep.aida.IAxis;
+-import hep.aida.IHistogram;
+-import hep.aida.IHistogram1D;
+-import hep.aida.IHistogram2D;
+ /**
+ Abstract base class extracting and implementing most of the redundancy of the 
interface.
+ 
+ @author Wolfgang Hoschek, Tony Johnson, and others.
+ @version 1.0, 23/03/2000
+ */
+-abstract class AbstractHistogram2D extends Histogram implements IHistogram2D
++abstract class AbstractHistogram2D extends Histogram
+ {
+-      protected IAxis xAxis, yAxis;
++      protected FixedAxis xAxis, yAxis;
+       AbstractHistogram2D(String title)
+       {
+               super(title);
+@@ -75,7 +71,7 @@
+        * <b>Note 2</b>indexY1 and indexY2 may include the use of under and 
over flow bins
+        * <b>Note 3</b>There is no note 3 (yet)
+        */
+-      protected abstract IHistogram1D internalSliceX(String title, int 
indexY1, int indexY2);
++      protected abstract Histogram1D internalSliceX(String title, int 
indexY1, int indexY2);
+       /**
+        * The precise meaning of the arguments to the public slice
+        * methods is somewhat ambiguous, so we define this internal
+@@ -86,7 +82,7 @@
+        * <b>Note 2</b>indexX1 and indexX2 may include the use of under and 
over flow bins
+        * <b>Note 3</b>There is no note 3 (yet)
+        */
+-      protected abstract IHistogram1D internalSliceY(String title, int 
indexX1, int indexX2);
++      protected abstract Histogram1D internalSliceY(String title, int 
indexX1, int indexX2);
+ /**
+        * Package private method to map from the external representation of bin
+        * number to our internal representation of bin number
+@@ -96,8 +92,8 @@
+               int bins = xAxis.bins() + 2;
+               if (index >= bins) throw new 
IllegalArgumentException("bin="+index);
+               if (index >= 0) return index+1;
+-              if (index == IHistogram.UNDERFLOW) return 0;
+-              if (index == IHistogram.OVERFLOW) return bins-1;
++              if (index == Histogram.UNDERFLOW) return 0;
++              if (index == Histogram.OVERFLOW) return bins-1;
+               throw new IllegalArgumentException("bin="+index);
+       }
+ /**
+@@ -109,8 +105,8 @@
+               int bins = yAxis.bins() + 2;
+               if (index >= bins) throw new 
IllegalArgumentException("bin="+index);
+               if (index >= 0) return index+1;
+-              if (index == IHistogram.UNDERFLOW) return 0;
+-              if (index == IHistogram.OVERFLOW) return bins-1;
++              if (index == Histogram.UNDERFLOW) return 0;
++              if (index == Histogram.OVERFLOW) return bins-1;
+               throw new IllegalArgumentException("bin="+index);
+       }
+       public int[] minMaxBins()
+@@ -139,26 +135,26 @@
+               int[] result = {minBinX,minBinY, maxBinX,maxBinY};
+               return result;
+       }
+-      public IHistogram1D projectionX()
++      public Histogram1D projectionX()
+       {
+               String newTitle = title() + " (projectionX)";
+               //return internalSliceX(newTitle,yAxis.under,yAxis.over);
+-              return 
internalSliceX(newTitle,mapY(IHistogram.UNDERFLOW),mapY(IHistogram.OVERFLOW));
++              return 
internalSliceX(newTitle,mapY(Histogram.UNDERFLOW),mapY(Histogram.OVERFLOW));
+       }
+-      public IHistogram1D projectionY()
++      public Histogram1D projectionY()
+       {
+               String newTitle = title() + " (projectionY)";
+               //return internalSliceY(newTitle,xAxis.under,xAxis.over);
+-              return 
internalSliceY(newTitle,mapX(IHistogram.UNDERFLOW),mapX(IHistogram.OVERFLOW));
++              return 
internalSliceY(newTitle,mapX(Histogram.UNDERFLOW),mapX(Histogram.OVERFLOW));
+       }
+-      public IHistogram1D sliceX(int indexY)
++      public Histogram1D sliceX(int indexY)
+       {
+               //int start = yAxis.map(indexY);
+               int start = mapY(indexY);
+               String newTitle = title() + " (sliceX ["+indexY+"])";
+               return internalSliceX(newTitle,start,start);
+       }
+-      public IHistogram1D sliceX(int indexY1, int indexY2)
++      public Histogram1D sliceX(int indexY1, int indexY2)
+       {
+               //int start = yAxis.map(indexY1);
+               //int stop = yAxis.map(indexY2);
+@@ -167,14 +163,14 @@
+               String newTitle = title() + " (sliceX 
["+indexY1+":"+indexY2+"])";
+               return internalSliceX(newTitle,start,stop);
+       }
+-      public IHistogram1D sliceY(int indexX)
++      public Histogram1D sliceY(int indexX)
+       {
+               //int start = xAxis.map(indexX);
+               int start = mapX(indexX);
+               String newTitle = title() + " (sliceY ["+indexX+"])";
+               return internalSliceY(newTitle,start,start);
+       }
+-      public IHistogram1D sliceY(int indexX1, int indexX2)
++      public Histogram1D sliceY(int indexX1, int indexX2)
+       {
+               //int start = xAxis.map(indexX1);
+               //int stop = xAxis.map(indexX2);
+@@ -207,12 +203,15 @@
+       {
+               return sumAllBinHeights() - sumBinHeights();
+       }
+-      public IAxis xAxis()
++      public FixedAxis xAxis()
+       {
+               return xAxis;
+       }
+-      public IAxis yAxis()
++      public FixedAxis yAxis()
+       {
+               return yAxis;
+       }
++      public abstract double binHeight(int indexX, int indexY);
++      public abstract int binEntries(int indexX, int indexY);
++      public abstract void fill(double x, double y, double weight);
+ }
+--- a/src/hep/aida/ref/Histogram.java
++++ b/src/hep/aida/ref/Histogram.java
+@@ -6,7 +6,7 @@
+ @author Wolfgang Hoschek, Tony Johnson, and others.
+ @version 1.0, 23/03/2000
+ */
+-abstract class Histogram implements hep.aida.IHistogram
++abstract class Histogram
+ {
+       private String title;
+       Histogram(String title)
+@@ -17,4 +17,13 @@
+       {
+               return title;
+       }
++
++      /**
++       * Constant specifying the overflow bin (can be passed to any method 
expecting a bin number).
++       */
++      public final static int OVERFLOW = -1;
++      /**
++       * Constant specifying the underflow bin (can be passed to any method 
expecting a bin number).
++       */
++      public final static int UNDERFLOW = -2;
+ }
+--- a/src/hep/aida/ref/Histogram2D.java
++++ b/src/hep/aida/ref/Histogram2D.java
+@@ -1,8 +1,5 @@
+ package hep.aida.ref;
+ 
+-import hep.aida.IAxis;
+-import hep.aida.IHistogram1D;
+-import hep.aida.IHistogram2D;
+ /**
+ A reference implementation of hep.aida.IHistogram2D.
+ The goal is to provide a clear implementation rather than the most efficient 
implementation.
+@@ -11,7 +8,7 @@
+ @author Wolfgang Hoschek, Tony Johnson, and others.
+ @version 1.0, 23/03/2000
+ */
+-public class Histogram2D extends AbstractHistogram2D implements IHistogram2D
++public class Histogram2D extends AbstractHistogram2D
+ {
+       private double[][] heights;
+       private double[][] errors;
+@@ -58,7 +55,7 @@
+        * @param xAxis The x-axis description to be used for binning.
+        * @param yAxis The y-axis description to be used for binning.
+        */
+-      public Histogram2D(String title, IAxis xAxis, IAxis yAxis)
++      public Histogram2D(String title, FixedAxis xAxis, FixedAxis yAxis)
+       {
+               super(title);
+               this.xAxis = xAxis;
+@@ -138,7 +135,7 @@
+        * <b>Note 2</b>indexY1 and indexY2 may include the use of under and 
over flow bins
+        * <b>Note 3</b>There is no note 3 (yet)
+        */
+-      protected IHistogram1D internalSliceX(String title, int indexY1, int 
indexY2)
++      protected Histogram1D internalSliceX(String title, int indexY1, int 
indexY2)
+       {
+               // Attention: our internal definition of bins has been choosen
+               // so that this works properly even if the indeces passed in 
include
+@@ -174,7 +171,7 @@
+        * <b>Note 2</b>indexX1 and indexX2 may include the use of under and 
over flow bins
+        * <b>Note 3</b>There is no note 3 (yet)
+        */
+-      protected IHistogram1D internalSliceY(String title, int indexX1, int 
indexX2)
++      protected Histogram1D internalSliceY(String title, int indexX1, int 
indexX2)
+       {
+               // Attention: our internal definition of bins has been choosen
+               // so that this works properly even if the indeces passed in 
include
+--- a/src/hep/aida/ref/AbstractHistogram3D.java
++++ b/src/hep/aida/ref/AbstractHistogram3D.java
+@@ -1,18 +1,14 @@
+ package hep.aida.ref;
+ 
+-import hep.aida.IAxis;
+-import hep.aida.IHistogram;
+-import hep.aida.IHistogram2D;
+-import hep.aida.IHistogram3D;
+ /**
+ Abstract base class extracting and implementing most of the redundancy of the 
interface.
+ 
+ @author Wolfgang Hoschek, Tony Johnson, and others.
+ @version 1.0, 23/03/2000
+ */
+-abstract class AbstractHistogram3D extends Histogram implements IHistogram3D
++abstract class AbstractHistogram3D extends Histogram
+ {
+-      protected IAxis xAxis, yAxis, zAxis;
++      protected FixedAxis xAxis, yAxis, zAxis;
+       AbstractHistogram3D(String title)
+       {
+               super(title);
+@@ -61,7 +57,7 @@
+        * <b>Note 2</b>indexX1 and indexX2 may include the use of under and 
over flow bins
+        * <b>Note 3</b>There is no note 3 (yet)
+        */
+-      protected abstract IHistogram2D internalSliceXY(String title, int 
indexZ1, int indexZ2);
++      protected abstract Histogram2D internalSliceXY(String title, int 
indexZ1, int indexZ2);
+       /**
+        * The precise meaning of the arguments to the public slice
+        * methods is somewhat ambiguous, so we define this internal
+@@ -72,7 +68,7 @@
+        * <b>Note 2</b>indexY1 and indexY2 may include the use of under and 
over flow bins
+        * <b>Note 3</b>There is no note 3 (yet)
+        */
+-      protected abstract IHistogram2D internalSliceXZ(String title, int 
indexY1, int indexY2);
++      protected abstract Histogram2D internalSliceXZ(String title, int 
indexY1, int indexY2);
+       /**
+        * The precise meaning of the arguments to the public slice
+        * methods is somewhat ambiguous, so we define this internal
+@@ -83,7 +79,7 @@
+        * <b>Note 2</b>indexX1 and indexX2 may include the use of under and 
over flow bins
+        * <b>Note 3</b>There is no note 3 (yet)
+        */
+-      protected abstract IHistogram2D internalSliceYZ(String title, int 
indexX1, int indexX2);
++      protected abstract Histogram2D internalSliceYZ(String title, int 
indexX1, int indexX2);
+       /**
+        * Package private method to map from the external representation of bin
+        * number to our internal representation of bin number
+@@ -93,8 +89,8 @@
+               int bins = xAxis.bins() + 2;
+               if (index >= bins) throw new 
IllegalArgumentException("bin="+index);
+               if (index >= 0) return index+1;
+-              if (index == IHistogram.UNDERFLOW) return 0;
+-              if (index == IHistogram.OVERFLOW) return bins-1;
++              if (index == Histogram.UNDERFLOW) return 0;
++              if (index == Histogram.OVERFLOW) return bins-1;
+               throw new IllegalArgumentException("bin="+index);
+       }
+       /**
+@@ -106,8 +102,8 @@
+               int bins = yAxis.bins() + 2;
+               if (index >= bins) throw new 
IllegalArgumentException("bin="+index);
+               if (index >= 0) return index+1;
+-              if (index == IHistogram.UNDERFLOW) return 0;
+-              if (index == IHistogram.OVERFLOW) return bins-1;
++              if (index == Histogram.UNDERFLOW) return 0;
++              if (index == Histogram.OVERFLOW) return bins-1;
+               throw new IllegalArgumentException("bin="+index);
+       }
+       /**
+@@ -119,8 +115,8 @@
+               int bins = zAxis.bins() + 2;
+               if (index >= bins) throw new 
IllegalArgumentException("bin="+index);
+               if (index >= 0) return index+1;
+-              if (index == IHistogram.UNDERFLOW) return 0;
+-              if (index == IHistogram.OVERFLOW) return bins-1;
++              if (index == Histogram.UNDERFLOW) return 0;
++              if (index == Histogram.OVERFLOW) return bins-1;
+               throw new IllegalArgumentException("bin="+index);
+       }
+       public int[] minMaxBins()
+@@ -155,48 +151,48 @@
+               int[] result = {minBinX,minBinY,minBinZ, 
maxBinX,maxBinY,maxBinZ};
+               return result;
+       }
+-      public IHistogram2D projectionXY()
++      public Histogram2D projectionXY()
+       {
+               String newTitle = title() + " (projectionXY)";
+-              return 
internalSliceXY(newTitle,mapZ(IHistogram.UNDERFLOW),mapZ(IHistogram.OVERFLOW));
++              return 
internalSliceXY(newTitle,mapZ(Histogram.UNDERFLOW),mapZ(Histogram.OVERFLOW));
+       }
+-      public IHistogram2D projectionXZ()
++      public Histogram2D projectionXZ()
+       {
+               String newTitle = title() + " (projectionXZ)";
+-              return 
internalSliceXZ(newTitle,mapY(IHistogram.UNDERFLOW),mapY(IHistogram.OVERFLOW));
++              return 
internalSliceXZ(newTitle,mapY(Histogram.UNDERFLOW),mapY(Histogram.OVERFLOW));
+       }
+-      public IHistogram2D projectionYZ()
++      public Histogram2D projectionYZ()
+       {
+               String newTitle = title() + " (projectionYZ)";
+-              return 
internalSliceYZ(newTitle,mapX(IHistogram.UNDERFLOW),mapX(IHistogram.OVERFLOW));
++              return 
internalSliceYZ(newTitle,mapX(Histogram.UNDERFLOW),mapX(Histogram.OVERFLOW));
+       }
+-      public IHistogram2D sliceXY(int indexZ )
++      public Histogram2D sliceXY(int indexZ )
+       {
+               return sliceXY(indexZ,indexZ);
+       }
+-      public IHistogram2D sliceXY(int indexZ1, int indexZ2)
++      public Histogram2D sliceXY(int indexZ1, int indexZ2)
+       {
+               int start = mapZ(indexZ1);
+               int stop = mapZ(indexZ2);
+               String newTitle = title() + " (sliceXY 
["+indexZ1+":"+indexZ2+"])";
+               return internalSliceXY(newTitle,start,stop);
+       }
+-      public IHistogram2D sliceXZ(int indexY )
++      public Histogram2D sliceXZ(int indexY )
+       {
+               return sliceXZ(indexY,indexY);
+       }
+-      public IHistogram2D sliceXZ(int indexY1, int indexY2)
++      public Histogram2D sliceXZ(int indexY1, int indexY2)
+       {
+               int start = mapY(indexY1);
+               int stop = mapY(indexY2);
+               String newTitle = title() + " (sliceXZ 
["+indexY1+":"+indexY2+"])";
+               return internalSliceXY(newTitle,start,stop);
+       }
+-      public IHistogram2D sliceYZ(int indexX )
++      public Histogram2D sliceYZ(int indexX )
+       {
+               return sliceYZ(indexX,indexX);
+       }
+-      public IHistogram2D sliceYZ(int indexX1, int indexX2)
++      public Histogram2D sliceYZ(int indexX1, int indexX2)
+       {
+               int start = mapX(indexX1);
+               int stop = mapX(indexX2);
+@@ -229,16 +225,19 @@
+       {
+               return sumAllBinHeights() - sumBinHeights();
+       }
+-      public IAxis xAxis()
++      public FixedAxis xAxis()
+       {
+               return xAxis;
+       }
+-      public IAxis yAxis()
++      public FixedAxis yAxis()
+       {
+               return yAxis;
+       }
+-      public IAxis zAxis()
++      public FixedAxis zAxis()
+       {
+               return zAxis;
+       }
++      public abstract double binHeight(int indexX, int indexY, int indexZ);
++      public abstract int binEntries(int indexX, int indexY, int indexZ);
++      public abstract void fill(double x, double y, double z, double weight);
+ }
+--- a/src/hep/aida/ref/Histogram3D.java
++++ b/src/hep/aida/ref/Histogram3D.java
+@@ -1,8 +1,5 @@
+ package hep.aida.ref;
+ 
+-import hep.aida.IAxis;
+-import hep.aida.IHistogram2D;
+-import hep.aida.IHistogram3D;
+ /**
+ A reference implementation of hep.aida.IHistogram3D.
+ The goal is to provide a clear implementation rather than the most efficient 
implementation.
+@@ -11,7 +8,7 @@
+ @author Wolfgang Hoschek, Tony Johnson, and others.
+ @version 1.0, 23/03/2000
+ */
+-public class Histogram3D extends AbstractHistogram3D implements IHistogram3D
++public class Histogram3D extends AbstractHistogram3D
+ {
+       private double[][][] heights;
+       private double[][][] errors;
+@@ -66,7 +63,7 @@
+        * @param yAxis The y-axis description to be used for binning.
+        * @param zAxis The z-axis description to be used for binning.
+        */
+-      public Histogram3D(String title, IAxis xAxis, IAxis yAxis, IAxis zAxis)
++      public Histogram3D(String title, FixedAxis xAxis, FixedAxis yAxis, 
FixedAxis zAxis)
+       {
+               super(title);
+               this.xAxis = xAxis;
+@@ -147,7 +144,7 @@
+        * <b>Note 2</b>indexX1 and indexX2 may include the use of under and 
over flow bins
+        * <b>Note 3</b>There is no note 3 (yet)
+        */
+-      protected IHistogram2D internalSliceXY(String title, int indexZ1, int 
indexZ2)
++      protected Histogram2D internalSliceXY(String title, int indexZ1, int 
indexZ2)
+       {
+               // Attention: our internal definition of bins has been choosen
+               // so that this works properly even if the indeces passed in 
include
+@@ -186,7 +183,7 @@
+        * <b>Note 2</b>indexY1 and indexY2 may include the use of under and 
over flow bins
+        * <b>Note 3</b>There is no note 3 (yet)
+        */
+-      protected IHistogram2D internalSliceXZ(String title, int indexY1, int 
indexY2)
++      protected Histogram2D internalSliceXZ(String title, int indexY1, int 
indexY2)
+       {
+               // Attention: our internal definition of bins has been choosen
+               // so that this works properly even if the indeces passed in 
include
+@@ -225,7 +222,7 @@
+        * <b>Note 2</b>indexX1 and indexX2 may include the use of under and 
over flow bins
+        * <b>Note 3</b>There is no note 3 (yet)
+        */
+-      protected IHistogram2D internalSliceYZ(String title, int indexX1, int 
indexX2)
++      protected Histogram2D internalSliceYZ(String title, int indexX1, int 
indexX2)
+       {
+               // Attention: our internal definition of bins has been choosen
+               // so that this works properly even if the indeces passed in 
include
+--- a/src/hep/aida/ref/FixedAxis.java
++++ b/src/hep/aida/ref/FixedAxis.java
+@@ -1,14 +1,12 @@
+ package hep.aida.ref;
+ 
+-import hep.aida.IAxis;
+-import hep.aida.IHistogram;
+ /**
+ Fixed-width axis; A reference implementation of hep.aida.IAxis.
+ 
+ @author Wolfgang Hoschek, Tony Johnson, and others.
+ @version 1.0, 23/03/2000
+ */
+-public class FixedAxis implements IAxis
++public class FixedAxis implements java.io.Serializable
+ {
+       private int bins;
+       private double min;
+@@ -41,14 +39,15 @@
+               //this.over = bins+1;
+ 
+       }
++      FixedAxis() {  } //Null constructor for VariableAxis
+       public double binCentre(int index)
+       {
+               return min + binWidth*index + binWidth/2;
+       }
+       public double binLowerEdge(int index)
+       {
+-              if (index == IHistogram.UNDERFLOW) return 
Double.NEGATIVE_INFINITY;
+-              if (index == IHistogram.OVERFLOW) return upperEdge();
++              if (index == Histogram.UNDERFLOW) return 
Double.NEGATIVE_INFINITY;
++              if (index == Histogram.OVERFLOW) return upperEdge();
+               return min + binWidth*index;
+       }
+       public int bins()
+@@ -57,8 +56,8 @@
+       }
+       public double binUpperEdge(int index)
+       {
+-              if (index == IHistogram.UNDERFLOW) return min;
+-              if (index == IHistogram.OVERFLOW) return 
Double.POSITIVE_INFINITY;
++              if (index == Histogram.UNDERFLOW) return min;
++              if (index == Histogram.OVERFLOW) return 
Double.POSITIVE_INFINITY;
+               return min + binWidth*(index+1);
+       }
+       public double binWidth(int index)
+@@ -67,9 +66,9 @@
+       }
+       public int coordToIndex(double coord)
+       {
+-              if (coord < min) return IHistogram.UNDERFLOW;
++              if (coord < min) return Histogram.UNDERFLOW;
+               int index = (int) Math.floor((coord - min)/binWidth);
+-              if (index >= bins) return IHistogram.OVERFLOW;
++              if (index >= bins) return Histogram.OVERFLOW;
+               
+               return index;
+       }
+@@ -100,8 +99,8 @@
+       {
+               if (index >= bins) throw new 
IllegalArgumentException("bin="+index);
+               if (index >= 0) return index+1;
+-              if (index == IHistogram.UNDERFLOW) return xunder;
+-              if (index == IHistogram.OVERFLOW) return xover;
++              if (index == Histogram.UNDERFLOW) return xunder;
++              if (index == Histogram.OVERFLOW) return xover;
+               throw new IllegalArgumentException("bin="+index);
+       }
+ }
+--- a/src/hep/aida/ref/VariableAxis.java
++++ b/src/hep/aida/ref/VariableAxis.java
+@@ -1,14 +1,12 @@
+ package hep.aida.ref;
+ 
+-import hep.aida.IAxis;
+-import hep.aida.IHistogram;
+ /**
+ Variable-width axis; A reference implementation of hep.aida.IAxis.
+ 
+ @author Wolfgang Hoschek, Tony Johnson, and others.
+ @version 1.0, 23/03/2000
+ */
+-public class VariableAxis implements IAxis 
++public class VariableAxis extends FixedAxis
+ {
+       protected double min; 
+       protected int bins;
+@@ -41,8 +39,8 @@
+       }
+       public double binLowerEdge(int index)
+       {
+-              if (index == IHistogram.UNDERFLOW) return 
Double.NEGATIVE_INFINITY;
+-              if (index == IHistogram.OVERFLOW) return upperEdge();
++              if (index == Histogram.UNDERFLOW) return 
Double.NEGATIVE_INFINITY;
++              if (index == Histogram.OVERFLOW) return upperEdge();
+               return edges[index];
+       }
+       public int bins()
+@@ -51,8 +49,8 @@
+       }
+       public double binUpperEdge(int index)
+       {
+-              if (index == IHistogram.UNDERFLOW) return lowerEdge();
+-              if (index == IHistogram.OVERFLOW) return 
Double.POSITIVE_INFINITY;
++              if (index == Histogram.UNDERFLOW) return lowerEdge();
++              if (index == Histogram.OVERFLOW) return 
Double.POSITIVE_INFINITY;
+               return edges[index+1];
+       }
+       public double binWidth(int index)
+@@ -61,14 +59,14 @@
+       }
+       public int coordToIndex(double coord)
+       {
+-              if (coord < min) return IHistogram.UNDERFLOW;
++              if (coord < min) return Histogram.UNDERFLOW;
+               
+               int     index = java.util.Arrays.binarySearch(this.edges,coord);
+               //int index = new 
DoubleArrayList(this.edges).binarySearch(coord); // just for debugging
+               if (index < 0) index = -index -1-1; // not found
+               //else index++; // found
+ 
+-              if (index >= bins) return IHistogram.OVERFLOW;
++              if (index >= bins) return Histogram.OVERFLOW;
+               
+               return index;
+       }
+--- a/src/hep/aida/ref/AbstractHistogram1D.java
++++ b/src/hep/aida/ref/AbstractHistogram1D.java
+@@ -1,17 +1,14 @@
+ package hep.aida.ref;
+ 
+-import hep.aida.IAxis;
+-import hep.aida.IHistogram;
+-import hep.aida.IHistogram1D;
+ /**
+ Abstract base class extracting and implementing most of the redundancy of the 
interface.
+ 
+ @author Wolfgang Hoschek, Tony Johnson, and others.
+ @version 1.0, 23/03/2000
+ */
+-abstract class AbstractHistogram1D extends Histogram implements IHistogram1D
++abstract class AbstractHistogram1D extends Histogram
+ {
+-      protected IAxis xAxis;
++      protected FixedAxis xAxis;
+       AbstractHistogram1D(String title)
+       {
+               super(title);
+@@ -44,8 +41,8 @@
+               int bins = xAxis.bins()+2;
+               if (index >= bins) throw new 
IllegalArgumentException("bin="+index);
+               if (index >= 0) return index+1;
+-              if (index == IHistogram.UNDERFLOW) return 0;
+-              if (index == IHistogram.OVERFLOW) return bins-1;
++              if (index == Histogram.UNDERFLOW) return 0;
++              if (index == Histogram.OVERFLOW) return bins-1;
+               throw new IllegalArgumentException("bin="+index);
+       }
+       public int[] minMaxBins()
+@@ -83,8 +80,10 @@
+               return binHeight(UNDERFLOW) + binHeight(OVERFLOW);
+               //return heights[xAxis.under] + heights[xAxis.over];
+       }
+-      public IAxis xAxis()
++      public FixedAxis xAxis()
+       {
+               return xAxis;
+       }
++      public abstract double binHeight(int index);
++      public abstract int binEntries(int index);
+ }
+--- a/src/hep/aida/ref/Converter.java
++++ b/src/hep/aida/ref/Converter.java
+@@ -1,10 +1,5 @@
+ package hep.aida.ref;
+ 
+-import hep.aida.IAxis;
+-import hep.aida.IHistogram1D;
+-import hep.aida.IHistogram2D;
+-import hep.aida.IHistogram3D;
+-
+ /**
+  * Histogram conversions, for example to String and XML format; 
+  * This class requires the Colt distribution, whereas the rest of the package 
is entirelly stand-alone.
+@@ -18,7 +13,7 @@
+       /** 
+        * Returns all edges of the given axis.
+        */ 
+-      public double[] edges(IAxis axis)
++      public double[] edges(FixedAxis axis)
+       {
+               int b = axis.bins();
+               double[] bounds = new double[b+1];
+@@ -33,7 +28,7 @@
+       /** 
+        * Returns an array[h.xAxis().bins()]; ignoring extra bins.
+        */ 
+-      protected double[] toArrayErrors(IHistogram1D h)
++      protected double[] toArrayErrors(Histogram1D h)
+       {
+               int xBins = h.xAxis().bins();
+               double[] array = new double[xBins];
+@@ -45,7 +40,7 @@
+       /** 
+        * Returns an array[h.xAxis().bins()][h.yAxis().bins()]; ignoring extra 
bins.
+        */ 
+-      protected double[][] toArrayErrors(IHistogram2D h)
++      protected double[][] toArrayErrors(Histogram2D h)
+       {
+               int xBins = h.xAxis().bins();
+               int yBins = h.yAxis().bins();
+@@ -60,7 +55,7 @@
+       /** 
+        * Returns an array[h.xAxis().bins()]; ignoring extra bins.
+        */ 
+-      protected double[] toArrayHeights(IHistogram1D h)
++      protected double[] toArrayHeights(Histogram1D h)
+       {
+               int xBins = h.xAxis().bins();
+               double[] array = new double[xBins];
+@@ -72,7 +67,7 @@
+       /** 
+        * Returns an array[h.xAxis().bins()][h.yAxis().bins()]; ignoring extra 
bins.
+        */ 
+-      protected double[][] toArrayHeights(IHistogram2D h)
++      protected double[][] toArrayHeights(Histogram2D h)
+       {
+               int xBins = h.xAxis().bins();
+               int yBins = h.yAxis().bins();
+@@ -87,7 +82,7 @@
+       /** 
+        * Returns an 
array[h.xAxis().bins()][h.yAxis().bins()][h.zAxis().bins()]; ignoring extra 
bins.
+        */ 
+-      protected double[][][] toArrayHeights(IHistogram3D h)
++      protected double[][][] toArrayHeights(Histogram3D h)
+       {
+               int xBins = h.xAxis().bins();
+               int yBins = h.yAxis().bins();
+@@ -124,7 +119,7 @@
+       /** 
+        * Returns a string representation of the given argument.
+        */ 
+-      public String toString(IAxis axis) 
++      public String toString(FixedAxis axis) 
+       {
+               StringBuffer buf = new StringBuffer();
+               buf.append("Range: 
["+axis.lowerEdge()+","+axis.upperEdge()+")");
+@@ -135,7 +130,7 @@
+       /** 
+        * Returns a string representation of the given argument.
+        */ 
+-      public String toString(IHistogram1D h)
++      public String toString(Histogram1D h)
+       {               
+               String columnAxisName = null; //"X";
+               String rowAxisName = null;
+@@ -179,7 +174,7 @@
+       /** 
+        * Returns a string representation of the given argument.
+        */ 
+-      public String toString(IHistogram2D h)
++      public String toString(Histogram2D h)
+       {               
+               String columnAxisName = "X";
+               String rowAxisName = "Y";
+@@ -235,7 +230,7 @@
+       /** 
+        * Returns a string representation of the given argument.
+        */ 
+-      public String toString(IHistogram3D h)
++      public String toString(Histogram3D h)
+       {               
+               String columnAxisName = "X";
+               String rowAxisName = "Y";
+@@ -302,7 +297,7 @@
+       /** 
+        * Returns a XML representation of the given argument.
+        */ 
+-      public String toXML(IHistogram1D h)
++      public String toXML(Histogram1D h)
+       {
+                       StringBuffer buf = new StringBuffer();
+                       String sep = System.getProperty("line.separator");
+@@ -343,7 +338,7 @@
+       /** 
+        * Returns a XML representation of the given argument.
+        */ 
+-      public String toXML(IHistogram2D h)
++      public String toXML(Histogram2D h)
+       {
+                       StringBuffer out = new StringBuffer();
+                       String sep = System.getProperty("line.separator");
+--- a/src/hep/aida/ref/Histogram1D.java
++++ b/src/hep/aida/ref/Histogram1D.java
+@@ -1,7 +1,5 @@
+ package hep.aida.ref;
+ 
+-import hep.aida.IAxis;
+-import hep.aida.IHistogram1D;
+ /**
+ A reference implementation of hep.aida.IHistogram1D.
+ The goal is to provide a clear implementation rather than the most efficient 
implementation.
+@@ -10,7 +8,7 @@
+ @author Wolfgang Hoschek, Tony Johnson, and others.
+ @version 1.0, 23/03/2000
+ */
+-public class Histogram1D extends AbstractHistogram1D implements IHistogram1D
++public class Histogram1D extends AbstractHistogram1D
+ {
+       private double[] errors;
+       private double[] heights;
+@@ -49,7 +47,7 @@
+        * @param title The histogram title.
+        * @param axis The axis description to be used for binning.
+        */
+-      public Histogram1D(String title, IAxis axis)
++      public Histogram1D(String title, FixedAxis axis)
+       {
+               super(title);
+               xAxis = axis;
+--- a/src/hep/aida/bin/QuantileBin1D.java
++++ b/src/hep/aida/bin/QuantileBin1D.java
+@@ -936,7 +936,7 @@
+ @param axis an axis defining interval boundaries.
+ @param resolution a measure of accuracy; the desired number of subintervals 
per interval. 
+ */
+-public synchronized MightyStaticBin1D[] splitApproximately(hep.aida.IAxis 
axis, int k) {
++public synchronized MightyStaticBin1D[] 
splitApproximately(hep.aida.ref.FixedAxis axis, int k) {
+       DoubleArrayList percentages = new DoubleArrayList(new 
hep.aida.ref.Converter().edges(axis));
+       percentages.beforeInsert(0,Double.NEGATIVE_INFINITY);
+       percentages.add(Double.POSITIVE_INFINITY);
diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..11e040c
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1,2 @@
+use_debian_packaged_concurrent_jar.patch
+build_without_aida_interface_defs.patch
diff --git a/debian/patches/use_debian_packaged_concurrent_jar.patch 
b/debian/patches/use_debian_packaged_concurrent_jar.patch
new file mode 100644
index 0000000..381584b
--- /dev/null
+++ b/debian/patches/use_debian_packaged_concurrent_jar.patch
@@ -0,0 +1,14 @@
+Author: Andreas Tille <[email protected]>
+Description: Use Debian packaged version if concurrent
+--- colt.orig/build.xml
++++ colt/build.xml
+@@ -62,6 +62,9 @@
+               <include name="*.jar"/>
+               <exclude name="${jar.filename}"/>
+       </fileset>
++      <fileset dir="/usr/share/java">
++              <include name="concurrent.jar"/>
++        </fileset>
+       <!-- <pathelement location="${build.home}/classes"/> -->
+ </path>
+ 
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..2a0aa1c
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,23 @@
+#!/usr/bin/make -f
+
+JAVA_HOME=/usr/lib/jvm/default-java
+
+%:
+       dh $@ --with javahelper
+
+override_dh_auto_build:
+       ant -Dant.build.javac.source=1.5 -Dant.build.javac.target=1.5 build
+
+override_dh_installdocs:
+       dh_installdocs
+       rm -rf debian/libcolt-java-doc/usr/share/doc/libcolt-java/licenses
+
+override_dh_clean:
+       dh_clean
+       rm -rf build
+       rm -rf lib/*.jar
+       rm -f src/hep/aida/*.java src/hep/aida/ref/Test*.java
+
+get-orig-source:
+       mkdir -p ../tarballs
+       uscan --verbose --force-download --repack --compression xz --destdir 
../tarballs
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/debian/watch b/debian/watch
new file mode 100644
index 0000000..3a8640e
--- /dev/null
+++ b/debian/watch
@@ -0,0 +1,4 @@
+version=3
+opts="dversionmangle=s/\+dfsg//g" \
+http://acs.lbl.gov/software/colt/colt-download/releases/colt-([\d\.]+)\.tar\.gz
 \
+    debian debian/get-orig-source

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/debian-med/colt.git

_______________________________________________
debian-med-commit mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/debian-med-commit

Reply via email to