1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.4.2_05) on Thu Sep 09 20:36:06 PDT 2004 -->
<TITLE>
cern.colt.list (Colt 1.2.0 - API Specification)
</TITLE>
<META NAME="keywords" CONTENT="cern.colt.list package">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
parent.document.title="cern.colt.list (Colt 1.2.0 - API Specification)";
}
</SCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<b>Colt 1.2.0</b></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../cern/colt/function/package-summary.html"><B>PREV PACKAGE</B></A>
<A HREF="../../../cern/colt/list/adapter/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>
<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<H2>
Package cern.colt.list
</H2>
Resizable lists holding objects or primitive data types such as <tt>int</tt>,
<tt>double</tt>, etc.
<P>
<B>See:</B>
<BR>
<A HREF="#package_description"><B>Description</B></A>
<P>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TD COLSPAN=2><FONT SIZE="+2">
<B>Class Summary</B></FONT></TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/AbstractBooleanList.html" title="class in cern.colt.list">AbstractBooleanList</A></B></TD>
<TD>Abstract base class for resizable lists holding <code>boolean</code> elements; abstract.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/AbstractByteList.html" title="class in cern.colt.list">AbstractByteList</A></B></TD>
<TD>Abstract base class for resizable lists holding <code>byte</code> elements; abstract.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/AbstractCharList.html" title="class in cern.colt.list">AbstractCharList</A></B></TD>
<TD>Abstract base class for resizable lists holding <code>char</code> elements; abstract.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/AbstractCollection.html" title="class in cern.colt.list">AbstractCollection</A></B></TD>
<TD>Abstract base class for resizable collections holding objects or primitive data types such as <code>int</code>, <code>float</code>, etc.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/AbstractDoubleList.html" title="class in cern.colt.list">AbstractDoubleList</A></B></TD>
<TD>Abstract base class for resizable lists holding <code>double</code> elements; abstract.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/AbstractFloatList.html" title="class in cern.colt.list">AbstractFloatList</A></B></TD>
<TD>Abstract base class for resizable lists holding <code>float</code> elements; abstract.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/AbstractIntList.html" title="class in cern.colt.list">AbstractIntList</A></B></TD>
<TD>Abstract base class for resizable lists holding <code>int</code> elements; abstract.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/AbstractList.html" title="class in cern.colt.list">AbstractList</A></B></TD>
<TD>Abstract base class for resizable lists holding objects or primitive data types such as <code>int</code>, <code>float</code>, etc.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/AbstractLongList.html" title="class in cern.colt.list">AbstractLongList</A></B></TD>
<TD>Abstract base class for resizable lists holding <code>long</code> elements; abstract.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/AbstractShortList.html" title="class in cern.colt.list">AbstractShortList</A></B></TD>
<TD>Abstract base class for resizable lists holding <code>short</code> elements; abstract.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/BooleanArrayList.html" title="class in cern.colt.list">BooleanArrayList</A></B></TD>
<TD>Resizable list holding <code>boolean</code> elements; implemented with arrays.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/ByteArrayList.html" title="class in cern.colt.list">ByteArrayList</A></B></TD>
<TD>Resizable list holding <code>byte</code> elements; implemented with arrays.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/CharArrayList.html" title="class in cern.colt.list">CharArrayList</A></B></TD>
<TD>Resizable list holding <code>char</code> elements; implemented with arrays.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/DistinctNumberList.html" title="class in cern.colt.list">DistinctNumberList</A></B></TD>
<TD>Resizable compressed list holding numbers; based on the fact that a number from a large list with few distinct values need not take more than <tt>log(distinctValues)</tt> bits; implemented with a <tt>MinMaxNumberList</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/DoubleArrayList.html" title="class in cern.colt.list">DoubleArrayList</A></B></TD>
<TD>Resizable list holding <code>double</code> elements; implemented with arrays.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/FloatArrayList.html" title="class in cern.colt.list">FloatArrayList</A></B></TD>
<TD>Resizable list holding <code>float</code> elements; implemented with arrays.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/IntArrayList.html" title="class in cern.colt.list">IntArrayList</A></B></TD>
<TD>Resizable list holding <code>int</code> elements; implemented with arrays.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/LongArrayList.html" title="class in cern.colt.list">LongArrayList</A></B></TD>
<TD>Resizable list holding <code>long</code> elements; implemented with arrays.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/MinMaxNumberList.html" title="class in cern.colt.list">MinMaxNumberList</A></B></TD>
<TD>Resizable compressed list holding numbers; based on the fact that a value in a given interval need not take more than <tt>log(max-min+1)</tt> bits; implemented with a <tt>cern.colt.bitvector.BitVector</tt>.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/ObjectArrayList.html" title="class in cern.colt.list">ObjectArrayList</A></B></TD>
<TD>Resizable list holding <code>Object</code> elements; implemented with arrays.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/ShortArrayList.html" title="class in cern.colt.list">ShortArrayList</A></B></TD>
<TD>Resizable list holding <code>short</code> elements; implemented with arrays.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD WIDTH="15%"><B><A HREF="../../../cern/colt/list/SimpleLongArrayList.html" title="class in cern.colt.list">SimpleLongArrayList</A></B></TD>
<TD>Resizable list holding <code>long</code> elements; implemented with arrays; not efficient; just to demonstrate which methods you must override to implement a fully functional list.</TD>
</TR>
</TABLE>
<P>
<A NAME="package_description"><!-- --></A><H2>
Package cern.colt.list Description
</H2>
<P>
Resizable lists holding objects or primitive data types such as <tt>int</tt>,
<tt>double</tt>, etc. For non-resizable lists (1-dimensional matrices) see
package <A HREF="../../../cern/colt/matrix/package-summary.html"><CODE>cern.colt.matrix</CODE></A>.<p></p>
<h1><a name="Overview"></a>Getting Started</h1>
<h2>1. Overview</h2>
<p>The list package offers flexible object oriented abstractions modelling dynamically
resizing lists holding objects or primitive data types such as <tt>int</tt>,
<tt>double</tt>, etc. It is designed to be scalable in terms of performance
and memory requirements.</p>
<p>Features include: </p>
<p></p>
<ul>
<li>Lists operating on objects as well as all primitive data types such as <tt>int</tt>,
<tt>double</tt>, etc.</li>
<li>Compact representations</li>
<li>A number of general purpose list operations including: adding, inserting,
removing, iterating, searching, sorting, extracting ranges and copying. All
operations are designed to perform well on mass data.</li>
<li>Support for quick access to list elements. This is achieved by bounds-checking
and non-bounds-checking accessor methods as well as zero-copy transformations
to primitive arrays such as <tt>int[]</tt>, <tt>double[]</tt>, etc.
</li>
<li>Allows to use high level algorithms on primitive data types without any
space and time overhead. Operations on primitive arrays, Colt lists and JAL
algorithms can freely be mixed at zero copy overhead.</li>
</ul>
<p>File-based I/O can be achieved through the standard Java built-in serialization
mechanism. All classes implement the <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/Serializable.html" title="class or interface in java.io"><CODE>Serializable</CODE></A> interface.
However, the toolkit is entirely decoupled from advanced I/O. It provides data
structures and algorithms only.
<p> This toolkit borrows concepts and terminology from the Javasoft <a href="http://www.javasoft.com/products/jdk/1.2/docs/guide/collections/index.html">
Collections framework</a> written by Josh Bloch and introduced in JDK 1.2.
<h2>2. Introduction</h2>
<p>Lists are fundamental to virtually any application. Large scale resizable lists
are, for example, used in scientific computations, simulations database management
systems, to name just a few.</p>
<h2></h2>
<p>A list is a container holding elements that can be accessed via zero-based
indexes. Lists may be implemented in different ways (most commonly with arrays).
A resizable list automatically grows as elements are added. The lists of this
package do not automatically shrink. Shrinking needs to be triggered by explicitly
calling <tt>trimToSize()</tt> methods.</p>
<p><i>Growing policy</i>: A list implemented with arrays initially has a certain
<tt>initialCapacity</tt> - per default 10 elements, but customizable upon instance
construction. As elements are added, this capacity may nomore be sufficient.
When a list is automatically grown, its capacity is expanded to <tt>1.5*currentCapacity</tt>.
Thus, excessive resizing (involving copying) is avoided.</p>
<h4>Copying</h4>
<p>
<p>Any list can be copied. A copy is <i>equal</i> to the original but entirely
independent of the original. So changes in the copy are not reflected in the
original, and vice-versa.
<h2>3. Organization of this package</h2>
<p>Class naming follows the schema <tt><ElementType><ImplementationTechnique>List</tt>.
For example, we have a <A HREF="../../../cern/colt/list/DoubleArrayList.html" title="class in cern.colt.list"><CODE>DoubleArrayList</CODE></A>, which is a list
holding <tt>double</tt> elements implemented with <tt>double</tt>[] arrays.
</p>
<p>The classes for lists of a given value type are derived from a common abstract
base class tagged <tt>Abstract<ElementType></tt><tt>List</tt>. For example,
all lists operating on <tt>double</tt> elements are derived from <A HREF="../../../cern/colt/list/AbstractDoubleList.html" title="class in cern.colt.list"><CODE>AbstractDoubleList</CODE></A>,
which in turn is derived from an abstract base class tying together all lists
regardless of value type, <A HREF="../../../cern/colt/list/AbstractList.html" title="class in cern.colt.list"><CODE>AbstractList</CODE></A>, which finally
is rooted in grandmother <A HREF="../../../cern/colt/list/AbstractCollection.html" title="class in cern.colt.list"><CODE>AbstractCollection</CODE></A>. The abstract
base classes provide skeleton implementations for all but few methods. Experimental
data layouts (such as compressed, sparse, linked, etc.) can easily be implemented
and inherit a rich set of functionality. Have a look at the javadoc <a href="package-tree.html">tree
view</a> to get the broad picture.</p>
<h2>4. Example usage</h2>
<p>The following snippet fills a list, randomizes it, extracts the first half
of the elements, sums them up and prints the result. It is implemented entirely
with accessor methods.</p>
<table>
<td class="PRE">
<pre>
int s = 1000000;<br>AbstractDoubleList list = new DoubleArrayList();
for (int i=0; i<s; i++) { list.add((double)i); }
list.shuffle();
AbstractDoubleList part = list.partFromTo(0,list.size()/2 - 1);
double sum = 0.0;
for (int i=0; i<part.size(); i++) { sum += part.get(i); }
System.out.println(sum);
</pre>
</td>
</table>
<p> For efficiency, all classes provide back doors to enable getting/setting the
backing array directly. In this way, the high level operations of these classes
can be used where appropriate, and one can switch to <tt>[]</tt>-array index
notations where necessary. The key methods for this are <tt>public <ElementType>[]
elements()</tt> and <tt>public void elements(<ElementType>[])</tt>. The
former trustingly returns the array it internally keeps to store the elements.
Holding this array in hand, we can use the <tt>[]</tt>-array operator to
perform iteration over large lists without needing to copy the array or paying
the performance penalty introduced by accessor methods. Alternatively any JAL
algorithm (or other algorithm) can operate on the returned primitive array.
The latter method forces a list to internally hold a user provided array. Using
this approach one can avoid needing to copy the elements into the list.
<p>As a consequence, operations on primitive arrays, Colt lists and JAL algorithms
can freely be mixed at zero-copy overhead.
<p> Note that such special treatment certainly breaks encapsulation. This functionality
is provided for performance reasons only and should only be used when absolutely
necessary. Here is the above example in mixed notation:
<table>
<td class="PRE">
<pre>
int s = 1000000;<br>DoubleArrayList list = new DoubleArrayList(s); // list.size()==0, capacity==s
list.setSize(s); // list.size()==s<br>double[] values = list.elements(); // zero copy, values.length==s<br>for (int i=0; i<s; i++) { values[i]=(double)i; }
list.shuffle();
double sum = 0.0;
int limit = values.length/2;
for (int i=0; i<limit; i++) { sum += values[i]; }
System.out.println(sum);
</pre>
</td>
</table>
<p> Or even more compact using lists as algorithm objects:
<table>
<td class="PRE">
<pre>
int s = 1000000;<br>double[] values = new double[s];
for (int i=0; i<s; i++) { values[i]=(double)i; }
new DoubleArrayList(values).shuffle(); // zero-copy, shuffle via back door
double sum = 0.0;
int limit = values.length/2;
for (int i=0; i<limit; i++) { sum += values[i]; }
System.out.println(sum);
</pre>
</td>
</table>
<p>
<h2>5. Notes </h2>
<p>The quicksorts and mergesorts are the JDK 1.2 V1.26 algorithms, modified as
necessary to operate on the given data types.
<P>
<P>
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-files/index-1.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
<b>Colt 1.2.0</b></EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../cern/colt/function/package-summary.html"><B>PREV PACKAGE</B></A>
<A HREF="../../../cern/colt/list/adapter/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html" target="_top"><B>FRAMES</B></A>
<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A>
<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
<font size=-1 >Jump to the <a target=_top href=http://dsd.lbl.gov/~hoschek/colt >Colt Homepage</a>
</BODY>
</HTML>
|